使用以下代码,我们有 2 个 XML,第一个包含一些我们将链接到第二个的数据。之后,如果我想向第一个 XML 添加一个元素,它会被添加到第二个 XML,并且只有第二个 XML。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" initialize="init()">
<fx:Script>
<![CDATA[
private function init():void
{
var xml1:XML = <xml1>
<data>
<element id="1"/>
</data>
</xml1>;
var xml2:XML = <xml2>
<data/>
</xml2>;
trace("xml1:");
trace(xml1);
trace("xml2:");
trace(xml2);
trace("-------------");
xml2.data.appendChild(xml1.data.children());
trace("xml1:");
trace(xml1);
trace("xml2:");
trace(xml2);
trace("-------------");
xml1.data.appendChild(<element id="2"/>);
trace("xml1:");
trace(xml1);
trace("xml2:");
trace(xml2);
}
]]>
</fx:Script>
</s:Application>
预期结果将是:
xml1:
<xml1>
<data>
<element id="1"/>
<element id="2"/>
</data>
</xml1>
xml2:
<xml2>
<data>
<element id="1"/>
</data>
</xml2>
也许:
xml1:
<xml1>
<data>
<element id="1"/>
<element id="2"/>
</data>
</xml1>
xml2:
<xml2>
<data>
<element id="1"/>
<element id="2"/>
</data>
</xml2>
但这里的结果是:
xml1:
<xml1>
<data>
<element id="1"/>
</data>
</xml1>
xml2:
<xml2>
<data>
<element id="1"/>
<element id="2"/>
</data>
</xml2>
这是为什么?