考虑带有“节点”的此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")[email protected]("8")).@type;

09-25 22:54