使用包含下划线的节点解析XML

时间:2010-05-05 23:56:15

标签: xml actionscript-3 flash identifier e4x

如何解析包含存在下划线的节点的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,因为它来自第三方。任何帮助都会很棒。提前谢谢!

2 个答案:

答案 0 :(得分:3)

问题是some_xml是你的根节点,所以你不需要包含它。

这应该有效:

for each (var item:XML in Environment._XMLData.child_node.child){
    trace(item.@width_info);
}

答案 1 :(得分:0)

要记住的是.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"));