2011-09-01 168 views
2

比方說,我有一些HTML,看起來像這樣:的XPath的節點中的一個節點是另一個節點的兄弟

<section> 
    <header> 
     <h1>Foo</h1> 
    </header> 
    <section> 
     <a href="#">one</a> 
    </section> 
    <section> 
     <a href="#">two</a> 
    </section> 
</section> 
<section> 
    <header> 
     <h1>Bar</h1> 
    </header> 
    <section> 
     <a href="#">one</a> 
    </section> 
    <section> 
     <a href="#">two</a> 
    </section> 
</section> 

我想用「兩化」的文本中的錨,但必須屬於在具有「酒吧」(即,在上面的HTML的最後錨)的報頭中的部分標記。

可以很容易地獲得與酒吧文字的頭元素:

//header/h1[text()='Bar'] 

它也很容易與生活在一個部門元素文字「二」兩全錨:

//section/a[text()='two'] 

當然這會返回兩個錨。

我只是不知道如何將兩者結合起來,這樣我就只得到了錨發現在這包含「酒吧」的頭元素的兄弟的部分元素。

回答

3
//section[header/h1 = 'Bar']/section/a[. = 'two'] 
+0

哇,你每天都學到一些東西。我不知道你能做到這樣的方括號內的東西(即頁眉/ H1部分)或文本點東西。 – digiarnie

+0

@digiarnie,歡迎你! –

相關問題