0

xmlファイルを保存してxmlファイルをロードするコードを作成しましたが、両方とも完全に実行されます。

ここでバグを見つけました。xmlファイルを保存してからロードし、最後に再保存すると、本当に奇妙なことが起こります

だから私はこのようなファイルを保存します

<partlist>
  <item>
    <series>51 Series</series>
    <part>29251</part>
    <size>29251-6-6</size>
    <alt></alt>
    <description>BSP Swiv FM, BN</description>
  </item>
  <item>
    <series>51 Series</series>
    <part>29251</part>
    <size>29251-8-8</size>
    <alt></alt>
    <description>BSP Swiv FM, BN</description>
  </item>
</partlist>

それをフレックスアプリにロードしてから再保存すると、次のようになります

<partlist>
  <item>
    <series>
      <series>51 Series</series>
    </series>
    <part>
      <part>29251</part>
    </part>
    <size>
      <size>29251-6-6</size>
    </size>
    <alt>5654</alt>
    <description>
      <description>BSP Swiv FM, BN</description>
    </description>
  </item>
  <item>
    <series>
      <series>51 Series</series>
    </series>
    <part>
      <part>29251</part>
    </part>
    <size>
      <size>29251-8-8</size>
    </size>
    <alt>
      <alt/>
    </alt>
    <description>
      <description>BSP Swiv FM, BN</description>
    </description>
  </item>
</partlist>

保存およびロードされた値はArraycollectionに保存されます。ここでは、ノードを作成する方法を説明します。

var SavelistXml:XML=new XML();
SavelistXml = <partlist/>;
for (var i:Number = 0; i < PartsArray.length; i++)
{
var obj:Object = Object(PrintListGrid[i]);

var newItemNode:XML= <item/>;                   
var newSeriesNode:XML = <series/>;
newSeriesNode.appendChild(obj.PartGroup);
var newPartNode:XML = <part/>;
newPartNode.appendChild(obj.PartType);
var newSizeNode:XML = <size/>;
newSizeNode.appendChild(obj.PartNumber);
var newAltPartNode:XML = <alt/>;
newAltPartNode.appendChild(obj.AltPartNum);
var newDescriptionNode:XML = <description/>;
newDescriptionNode.appendChild(obj.PartDesc);

newItemNode.appendChild(newSeriesNode);
newItemNode.appendChild(newPartNode);
newItemNode.appendChild(newSizeNode);
newItemNode.appendChild(newAltPartNode);
newItemNode.appendChild(newDescriptionNode);

SavelistXml.appendChild(newItemNode);
}

なぜそれが機能するのかわかりませんが、ロードされたファイルからデータが取得されるとすぐに、正しく機能しなくなります。たとえば、obj.PartGroupにアラートを送信すると、正しい値が得られますが、appendChild()は、自分自身のノード内に自分自身のノードを作成しています。

4

0 に答える 0