有没有办法复制XMLList并保留命名空间?当我在XMLList上使用copy()方法时,似乎正在删除命名空间。
代码:
var xml:XML = <s:Label xmlns:s="library://ns.adobe.com/flex/spark"><s:color>red</s:color>
test level</s:Label>;
var elementsXMLList:XMLList = xml.elements();
trace(elementsXMLList.toXMLString()); // has namespaces
var elementsCopy:XMLList = elementsXMLList.copy();
trace(elementsCopy.toXMLString()); // does not have namespaces
elementsXMLList.toXMLString():
<s:color xmlns:s="library://ns.adobe.com/flex/spark">red</s:color>
elementsCopy()。toXMLString():
<color xmlns="library://ns.adobe.com/flex/spark">red</color>
我需要能够在制作副本时保留命名空间。
答案 0 :(得分:1)
这必须是因为s:Label
节点包含名称空间声明。 xml.elements()
会为您提供属于s:Label
树的xml元素的列表,因此他们知道自己的命名空间。当您执行elements.copy()
时,您会得到一个单独的XML元素列表,这些元素不再是具有xmlns:s
的树的一部分。
我建议您从s:Label
开始复制整个树,然后获取其元素,而不是以另一种方式进行。