2015-11-27 14 views
1

假設下面的XMLXPath的比賽沒有「複雜的表達式」

<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> 

我試圖選擇屬於junit節點<version>4.10</version>

我已經成功地使用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