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

问题描述 投票:1回答:2

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

xml actionscript-3 flash identifier e4x
2个回答
3
投票

问题是some_xml是您的根节点,因此您不需要包含它。

这应该工作:

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

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"));
© www.soinside.com 2019 - 2024. All rights reserved.