考虑带有“节点”的此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;