2013-04-03 66 views
1

好吧,基本上我正在嘗試使用XPath來找到匹配「給定條件」。基本上,與下面的XML:xpath條件匹配可能嗎?

<stuff1> 
    <stuff2>abc</stuff2> 
</stuff1> 
<stuff3> 
    <stuff4>abc</stuff4> 
    <stuff5>true</stuff5> 
</stuff3> 
<stuff3> 
    <stuff4>abc</stuff4> 
    <stuff5>false</stuff5> 
    <stuff6>extra stuff</stuff6> 
</stuff3> 

什麼,我想要做的就是選擇stuff1匹配基於stuff2 stuff3的== stuff4,而且在stuff3的有假了「stuff5」值,但不能的真正。

我知道//stuff1[stuff2/text()=../stuff3/stuff4/text()]會選擇與stuff3匹配的stuff1,但是如何指定stuff3的stuff5值必須爲false?對不起,如果這個小學或其他地方回答,隨機搜索似乎並不容易揭露答案。 謝謝。

回答

2

,如果你想只匹配stuff3元素具有false stuff5值就快,你可以通過添加謂詞[stuff5/text()="false"]stuff3比賽。

完整的XPath看起來應該像下面這樣:

//stuff1[stuff2/text()=../stuff3[stuff5/text()="false"]/stuff4/text()]

+0

真棒謝謝。我也想知道是否可以說...在節點輸出中包含匹配的stuff3,但是如果您不知道離手,請不要擔心。 – rogerdpack 2013-04-03 20:42:38

+1

@rogerdpack,請問,請您重述一下嗎?我不明白你想要選擇什麼元素。 – 2013-04-04 04:04:09

+0

好吧,我更新了原來的問題,基本上它是「給出了這個答案中的xpath,我怎麼能也stuff6 /額外的東西返回。如果這是有道理的:) – rogerdpack 2013-04-04 16:17:40