2015-11-27 3 views
1

Допуская следующий XMLматч без XPath «сложных выражений»

<project> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.10</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
     <version>1.4.5</version> 
    </dependency> 
    </dependencies> 
</project> 

Я пытающегося выбрать узел <version>4.10</version>, который принадлежит junit.

мне удалось выбрать элемент с помощью тестера XPATH, используя выражение:

/project/dependencies/dependency/artifactId[text()='junit']/../version 

однако, появляется библиотека, я использую не распознает .. родительский селектор.

Я также попытался

/project/dependencies/dependency/artifactId[text()='junit']/following-sibling::version 

, который работал для моего тестера, как хорошо, но опять же, это сложное выражение (отсюда following-sibling::).

Есть ли способ, которым я могу выполнить выбор этого элемента, используя простые выражения r?

ответ

2

Используйте предикат на предыдущем шаге: /project/dependencies/dependency[artifactId = 'junit']/version.

+0

это выглядит многообещающим .. столкнулся с другой проблемой при попытке реализовать это. Я буду держать вас в курсе. – sircapsalot

+0

работал великолепно .. на самом деле понял, что это было связано с именами :) – sircapsalot

Смежные вопросы