次のコードを見てください。2 つの XML があります。最初の XML には、2 番目の XML にリンクするデータが含まれています。その後、最初の XML に要素を追加したい場合、その要素は 2 番目の XML に追加され、2 番目の 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>
何故ですか?