I have a situation where the FlexJS output is different than the Flash output 
of XML, but it seems to me like the Flash output is wrong. I’m not sure what 
I’m missing:

Here’s the (stripped down) code:

var xml2:XML = new XML('<root 
xmlns:fz="http://ns.adobe.com/mxml/2009";><a><b/></a><a 
name="fred"/><a>hi<b>yeah!</b></a><a name="frank"/><c/></root>');
var list1:XMLList = xml2.a;
var aaa = list1[0];
var aab = list1[0][0][0];
var list2:XMLList = xml2.child("a");
var list3:XMLList = xml2.descendants();
list3  = list3.(attribute("name").length());
list2[list2.length()] = <c id="1"/>;
list2[0] = <bla/>;
var list4:XMLList = new XMLList();
list4[0] = <a id="1"/>;
list4[1] = <a id="2"/>;
list4[2] = <a id="3"/>;
list1 += list4
trace("after concat");
trace(xml2.toString());

In Flash the output is:

after concat
<root xmlns:fz="http://ns.adobe.com/mxml/2009";>
  <bla/>
  <a name="fred"/>
  <a>
    hi
    <b>yeah!</b>
  </a>
  <a name="frank"/>
  <c id="1"/>
  <c/>
</root>

In JS, the output is:

after concat
<root xmlns:fz="http://ns.adobe.com/mxml/2009";>
 <bla/>
 <a name="fred"/>
 <a>
        hi
   <b>yeah!</b>
  </a>
 <a name="frank"/>
 <c/>
 <c id="1"/>
 <a id="1"/>
 <a id="2"/>
 <a id="3"/>
</root>

Ignoring the order of the “c” elements for right now (which is a bug I’m going 
to fix), it seems to me that the three “a” elements that appear in the JS 
output is correct. I don’t know why Flash does not append the elements to the 
original XML.

Does anyone have any ideas?

Harbs

Reply via email to