Baffling, isn't it? Reading the spec is equally baffling, but I think I see for XMLList Append, that the targetObject of the appended XMLList becomes the targetObject of the destination XMLList! That seems really surprising to me and why they would do that doesn't jump to mind, but I think that's what I see.
HTH, -Alex On 5/5/16, 12:49 AM, "Harbs" <harbs.li...@gmail.com> wrote: >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