Учитывая этот 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>
Я пытаюсь найти ключ foo с определенным именем, скажем «Apple», имеющим наивысший ранг. Я использую следующее выражение xpath (обходной путь из-за отсутствия функции max):
/foos/foo[name='Apple' and rank >= /foos/foo[name='Apple']/rank]/key/text()
Однако иногда я получаю несколько результатов, даже если каждая комбинация имени и ранга уникальна. В чем я ошибаюсь?
Это используется в Java - если это окажется актуальным, я могу опубликовать весь код.