我试图通过actionscript在xml中插入子节点,如下所示 -
var xml:XML = <menu>
<item>burger</item>
<item>soda</item>
</menu>;
xml.insertChildAfter(xml.item[0], <item>fries</item>);
trace(xml);
----------output---------------
<menu>
<item>burger</item>
<item>fries</item>
<item>soda</item>
</menu>
-------------------------
上面的代码正常工作正常,但是当我尝试在嵌套子项中插入子项时,我无法插入。
但下面不起作用 -
var xml:XML = <menu>
<my>
<item>burger</item>
<item>soda</item>
</my>
</menu>;
xml.insertChildAfter(xml.my.item[0], <item>fries</item>);
trace(xml);
------------output-------------
<menu>
<my>
<item>burger</item>
<item>soda</item>
</my>
</menu>
此外,它返回undefined
并且如actionscript livedocs中所述 -
If you call this method on an XML child that is not an element (text, attributes, comments, pi, and so on) undefined is returned.
非常感谢任何帮助/输入,感谢您停下来。
答案 0 :(得分:0)
insertChildAfter
的第一个参数必须是您调用方法的XML节点的直接子节点。所以试试:
var xml:XML = <menu>
<my>
<item>burger</item>
<item>soda</item>
</my>
</menu>;
xml.my.insertChildAfter(xml.my.item[0], <item>fries</item>);
trace(xml.toXMLString());
答案 1 :(得分:0)
这个怎么样?它也有效。
var xml:XML = <menu>
<my>
<darling>
<item>burger</item>
<item>soda</item>
</darling>
</my>
</menu>;
xml..*::darling.insertChildAfter(xml..*::darling.item[0], <item>fries</item>);
trace(xml);
-------output------------------
<menu>
<my>
<darling>
<item>burger</item>
<item>fries</item>
<item>soda</item>
</darling>
</my>
</menu>