如何在具有id属性的xml中获取任何深度的每个元素?

时间:2012-02-10 14:12:02

标签: actionscript-3

我正在编写一个程序,它在动作脚本3中更新xml数据中的id属性值。 任何2个id都不能相互复制,即使它们是不同标签名称的项目。 请给出答案如何获取具有id属性的每个元素的列表。

比你提前。

2 个答案:

答案 0 :(得分:2)

我不确定你到底需要什么。但我可以就xml节点和设置唯一ID提供一些建议。

例如,将此xml结构作为var myXML:XML。

<root> <node uid="" name="node1"> <node uid="" name="node1.1"/> <node uid="" name="node1.2"/> </node> <node uid="" name="node2"> <node uid="" name="node2.1"> <node uid="" name="node2.1.2"/> </node> </node> </root>

public function updateUIDs():void { var allNodeItems:XMLList = myXML..node; var len:int = allNodeItems.length(); var i:int; var node:XML; var uid:String;

for(i = 0; i < len; i++) { node = allNodeItems[i] as XML; uid = UIDUtil.createUID(); trace("Setting uid=" + uid+" to node: "+node.@name); node.@uid = uid; }

}

希望这能回答你的问题。

答案 1 :(得分:2)

这是简短版本:

var list : XMLList = xml..*.(@id != null);
for each (var node:XML in list) node.@id = createUniqueID();