actionscript-3 - E4X可以根据任何级别的子节点的属性获取父节点的属性吗?

标签 actionscript-3 apache-flex e4x

考虑这个带有“节点”的 XML 片段,它可以有无限的“子节点”元素的子级别。

我要找@type node 的属性对于任何给定的 subnode ,基于其 @id属性。例如,如果我的 id 为 9,那么我想从上面返回 type="foo"。

<xml>
    <node type="bar">
        <subnode id="4">
            <subnode id="5"/>
        </subnode>  
        <subnode id="6"/>
    </node>
    <node type="foo">
        <subnode id="7">
            <subnode id="8">
                <subnode id="9"/>
            </subnode>
        </subnode>
        <subnode id="10"/>
    </node>
</xml>

我想出的 E4X 但失败的是:
xml.node.(subnode.(@id == '8')).@type 

我可以理解为什么它不起作用。更有意义的是以下但语法失败(在 AS3 中):
xml.node.(..subnode.(@id == '8')).@type

如何才能做到这一点?

最佳答案

您应该能够使用此 E4X 获取类型值:

xml.node.(descendants("subnode").@id.contains("8")).@type;

关于actionscript-3 - E4X可以根据任何级别的子节点的属性获取父节点的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1427810/

相关文章:

regex - 在 actionscript 正则表达式中指定 unicode 范围

apache-flex - 使Flex 3按钮响应Enter键的最佳方法是什么?

actionscript-3 - Away3D Context3D 不可用

javascript - 在 JavaScript 背景下学习 ActionScript

apache-flex - 将 Tomcat 插件添加到 Flex Builder

xml - E4X 选择后代可以是 A OR B 或 A && B 的节点

c# - 在调用 XElement.Remove() 之后,C#/Linq 能否将 XAttribute 添加到 XElement?

xml - SMIL 文件 xml 对 e4x 不友好?

flash - 发布在 Debug模式下编译的 Flash 应用程序的缺点

apache-flex - 关闭时 Flex3 Combobox 不显示 itemRenderer