Я возился с XPath на Java, и я, кажется, попал в стену. У меня есть следующий XML-документПолучение данных по значению
<?xml version="1.0" encoding="UTF-8"?>
<database>
<student>
<index>1234</index>
<courselist>
<course name="analiza matematyczna 1" grade="5.0"/>
<course name="kurs programowania" grade="5.5"/>
<course name="logika i struktury formalne" grade="4.0"/>
</courselist>
</student>
<student>
<index>5678</index>
<courselist>
<course name="logika i struktury formalne" grade="5.0"/>
<course name="algebra z geometrią analityczną" grade="5.0"/>
<course name="kurs programowania" grade="5.5"/>
</courselist>
</student>
</database>
, и я хочу, чтобы получить все номера индекса, которые имеют по крайней мере один 4,0 класса. Я могу выполнять эту задачу отдельно, но не полностью. Я попытался
/database/student/courselist/course[@grade='4.0']/@name | /database/student/index/text()
, но результат весьма далек от желаемого
[#text: 1234] #good
name="logika i struktury formalne" #even better, I can display where 4.0 was achieved
[#text: 5678] #bad, this student doesn't have even one 4.0
Мой вопрос, если такой запрос можно даже в XPath? Конечно, я был бы очень благодарен за рабочий пример :)
///course[@grade="4.0"]/@name попробуйте это, он дает мне результат corect – eatSleepCode