XPath获取子集的第一个元素

Sta*_*tas 21 xpath

我有这样的XML:

<AAA>
    <BBB aaa="111" bbb="222">
        <CCC/>
        <CCC xxx="555" yyy="666" zzz="777"/>
    </BBB>
    <BBB aaa="999">
        <CCC xxx="qq"/>
        <DDD xxx="ww"/>
        <EEE xxx="oo"/>
    </BBB>
    <BBB>
        <DDD xxx="oo"/>
    </BBB>
</AAA>
Run Code Online (Sandbox Code Playgroud)

我想获得第一个<CCC>元素.但是使用XPath表达式//*/CCC[1]我有两个<CCC>元素.它们中的每一个都是<BBB></BBB>上下文中的第一个元素.如何获得子集中的第一个元素?

Las*_*olt 41

这个应该适合你:

(//*/CCC)[1]
Run Code Online (Sandbox Code Playgroud)


Dim*_*hev 15

我想获得第一个元素.但是使用XPath表达式//*/CCC[1]我有两个元素.它们中的每一个都是<BBB></BBB>上下文中的第一个元素.如何获得子集中的第一个元素?

这是一个FAQ:

[]操作者具有比一更高的优先级(强结合)//的缩写.

用途:

(//CCC)[1]
Run Code Online (Sandbox Code Playgroud)

这将选择CCCXML文档中的第一个(按文档顺序)元素.