如何解析包含存在下划线的节点的XML文档?
<some_xml>
<child_node>
<child width_info="" height_info="" />
</childnode>
</some_xml>
我试过这个:
for each (var item:XML in Environment._XMLData.some_xml.child_node.child){
trace(child.@width_info);
}
但这似乎不起作用。我无法更改XML,因为它来自第三方。任何帮助都会很棒。提前致谢!
问题是some_xml是您的根节点,因此您不需要包含它。
这应该工作:
for each (var item:XML in Environment._XMLData.child_node.child){
trace(item.@width_info);
}
要记住的是.NODE和.ATTRIBUTE分别是.child(“NODE”)和.attribute(“ATTRIBUTE”)的快捷方式(根据Traversing XML structures (c/o the livedocs))
所以我认为下面的内容可行(代码未经测试,但理论应该是合理的)。
for each (var item:XML in Environment._XMLData.child("child_node").child){
trace(child.@width_info);
}
注意,如果未定义属性,则会出现运行时错误 - 您可以通过执行以下操作来阻止此操作:
if(child.hasOwnProperty("width_info"))
trace(child.@width_info);
或者只是使用属性
trace(child.attribute("width_info"));