有没有方法可以复制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>
我需要能够在制作副本时保留名称空间。
1条答案
按热度按时间unhi4e5o1#
这一定是因为
s:Label
节点包含了命名空间声明。xml.elements()
为您提供了一个属于s:Label
树的xml元素列表,因此它们确实知道自己的命名空间。当您执行elements.copy()
时,您会得到一个单独的XML元素列表,这些XML元素不再属于包含xmlns:s
的树。我建议您从
s:Label
开始复制整个树,然后获取它的元素,而不是用另一种方法。