鉴于此XML:
<foos>
<foo>
<name>Apple</name>
<rank>1</rank>
<key>asdfasdfasdf</key>
</foo>
<foo>
<name>Orange</name>
<rank>3</rank>
<key>qwerqwtwetqw</key>
</foo>
<foo>
<name>Apple</name>
<rank>2</rank>
<key>zxcvzxvcxzb</key>
</foo>
...
</foos>
Run Code Online (Sandbox Code Playgroud)
我试图找到具有特定名称的foo的关键,让我们说"Apple",其中排名最高.我正在使用以下xpath表达式(缺少max函数的解决方法):
/foos/foo[name='Apple' and rank >= /foos/foo[name='Apple']/rank]/key/text()
Run Code Online (Sandbox Code Playgroud)
然而,我有时会得到多个结果,即使每个名称 - 等级组合都是唯一的.我在哪里错了?
这是在Java中使用 - 如果事实证明是相关的,我可以发布整个代码.
尝试这个:
/foos/foo[name='Apple'][not(preceding-sibling::foo[name='Apple']/rank>./rank) and not(following-sibling::foo[name='Apple']/rank>./rank)]/key/text()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
248 次 |
| 最近记录: |