apache-flex 如何复制XMLList并保留名称空间?

yqkkidmi  于 2022-11-01  发布在  Apache
关注(0)|答案(1)|浏览(128)

有没有方法可以复制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

XML字符串():

<s:color xmlns:s="library://ns.adobe.com/flex/spark">red</s:color>

XML字符串():

<color xmlns="library://ns.adobe.com/flex/spark">red</color>

我需要能够在制作副本时保留名称空间。

unhi4e5o

unhi4e5o1#

这一定是因为s:Label节点包含了命名空间声明。xml.elements()为您提供了一个属于s:Label树的xml元素列表,因此它们确实知道自己的命名空间。当您执行elements.copy()时,您会得到一个单独的XML元素列表,这些XML元素不再属于包含xmlns:s的树。
我建议您从s:Label开始复制整个树,然后获取它的元素,而不是用另一种方法。

相关问题