I got rid of just about everything and it still was not working.
I finally replaced list1 += list4 with xml2.a += list4 and that works.
So the following does not work:
list1 = xml2.a;
list1 += list4;
But the following does:
xml2.a += list4
I’m guessing that the reason the second case works is because it’s actually
reassigning all <a> elements of the original xml with the new XMLList.
So the following does what I want:
for(i=0;i<list4.length();i++){
list1[list1.length()] = list4[i];
}
which is different than:
list1 += list4;
But:
If I do this:
list4 = xml2.z; // z does not exist
list4[0] = <a id="1"/>;
list4[1] = <a id="2"/>;
list4[2] = <a id="3"/>;
instead of this:
list4 = new XMLList();
list4[0] = <a id="1"/>;
list4[1] = <a id="2"/>;
list4[2] = <a id="3"/>;
I get the elements appended to the XML.
Bizarre, but this does jive with your reading of the spec.
On May 6, 2016, at 10:53 AM, Alex Harui <[email protected]> wrote:
> Hmm.
>
> Did you try commenting out lines of code in your first example until it
> looks like this employees example? Maybe one of the lines cause a bug. I
> wasn't sure what list1[0][0][0] would be, for example.
>
> Or comment out the <c /> node. I just noticed that the append may have
> picked up the name() from the last node, not the last node in the XMLList,
> and that would be a bug, IMO.
>
> -Alex
>
> On 5/6/16, 12:21 AM, "Harbs" <[email protected]> wrote:
>
>> No. That’s not it.
>>
>> For example, this:
>>
>> var e = <employees>
>> <employee id="1"><name>Joe</name><age>20</age></employee>
>> <employee id="2"><name>Sue</name><age>30</age></employee>
>> </employees>;
>> // append employees 3 and 4 to the end of the employee list
>> var newE:XMLList = new XMLList();
>> newE[0] = <employee id="3"><name>Fred</name></employee>;
>> newE[1] = <employee id="4"><name>Carol</name></employee>;
>> e.employee += newE;
>> trace(e);
>>
>> outputs:
>> <employees>
>> <employee id="1">
>> <name>Joe</name>
>> <age>20</age>
>> </employee>
>> <employee id="2">
>> <name>Sue</name>
>> <age>30</age>
>> </employee>
>> <employee id="3">
>> <name>Fred</name>
>> </employee>
>> <employee id="4">
>> <name>Carol</name>
>> </employee>
>> </employees>
>>
>> There’s something about the XML in my test case which is preventing the
>> appending of either XML or XMLList to the original XML object. It feels
>> to me like a bug in Flash…
>>
>> On May 6, 2016, at 10:06 AM, Alex Harui <[email protected]> wrote:
>>
>>> Well, the spec is checking to see if the thing appended is an XMLList
>>> and
>>> in the above example, I think you are appending XML not XMLList so that
>>> might explain the different behavior.
>>
>