2011-09-01 171 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,欢迎你! –

相关问题