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>

当我将它加载到我的 flex 应用程序中然后重新保存时,它看起来像这样

<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