XPath获取具有最高ID的元素

Hin*_*nek 12 .net xpath

XML来源:

<documents>
    <document>
        <id>3</id>
    </document>
    <document>
        <id>7</id>
    </document>
    <document>
        <id>1</id>
    </document>
</documents>
Run Code Online (Sandbox Code Playgroud)

我需要在其id元素中具有最高值document-element(<document><id>7</id></document>在示例中也是如此).我无法更改C#代码,它是XMLDocument.SelectSingleNode(...),我只能修改使用的XPath.

是否有类似documents/document[id=max(id)]或喜欢的东西order by id descending

Nic*_*nes 27

documents/document[not(../document/id > id)]/id
Run Code Online (Sandbox Code Playgroud)

  • +1用于最短和正确的XPath 1.0最大表达式,除了cuadratic复杂性... (2认同)
  • 聪明的解决方案! (2认同)

小智 12

除了Nick Jones XPath 1.0正确答案,在XPath 2.0中:

/documents/document[id = max(../document/id)]
Run Code Online (Sandbox Code Playgroud)