0

Adobe Flash AS3 クラスから XML ファイルにデータを保存する際に問題が発生しました。問題は、保存時に括弧 (<>) の一部が失われていることです。ファイルは次のようになります。

<UserData>
  <User>
    John
    18
    100
  </User>
  <User>
    Olav
    16
    10
  </User>
</UseData>

これの代わりに (これが本来あるべき姿です):

<UserData>
  <User>
    <Name>John</Name>
    <Age>18</Age>
    <Balance>100</Balance>
  </User>
  <User>
    <Name>Olav</Name>
    <Age>16</Age>
    <Balance>10</Balance>
  </User>
</UserData>

私のプログラムには 2 つのクラスがあり、2 番目のクラスにはすべてのユーザー (名前、年齢、残高) に関する情報が含まれています。メイン クラスには、すべてのユーザーを保持する配列が含まれています。

データを保存する関数:

function saveData(e:Event):void
{
    var fileRef:FileReference=new FileReference() 
    var userData:XML=new XML(<UserData/>)
    for(var i:int=0;i<userArr.length;i++)  //userArr is the array holding all the users
    {
        var user:XML=new XML(<User/>)
        var name:XML=new XML(<Name/>)
        var age:XML=new XML(<Age/>)
        var balance:XML=new XML(<Balance/>)
        name=XML(userArr[i].name) //the userArr holds a class with the variables name, age and balance.
        age=XML(userArr[i].age)
        balance=XML(userArr[i].balance)

        //I'm pretty sure that its here it goes wrong.
        //fore some reason when I appendChild the user, it gets <> but when I
        //appendChild name, age and balance it does not get a <>.
        user.appendChild(name)
        user.appendChild(age)
        user.appendChild(balance)

        userData.appendChild(user)

    }
    fileRef.save(userData,"Data.xml")
}

奇妙なことは、これが以前は機能していたことです(私は思う)。数か月前に(cs4で)使用しましたが、うまくいきました。しかし、今では機能しなくなりました(cs6で)。

Nb: コードをノルウェー語から英語に翻訳しました。したがって、誤ってスペルを間違えた場合、それはおそらくコードに含まれていません。

ありがとうございました。

4

1 に答える 1