2013-05-27 60 views
0

我有以下的html:的XPath:選擇H2父母沒有孩子

<div class="stack"> 
    <h2 class="overflow"> 
     <img src="http:.."> 
     text 
    </h2> 
    <div class="sublist"> 
     <table> 
     ... 
     </table> 
    </div> 

    <h2 class="overflow"> 
     <a href="http://...">link</a> 
    </h2> 
</div> 

正如你所看到的,.sublist DIV始終遵循與和一些文字,它就像DIV是一個子表h2(h2是子列表的標題)。另一個包含一個錨標籤。

我想獲得所有在div .sublist之前的h2標籤。

這是我目前的XPath條款:

//div[@class="stack"]/h2/*[not(descendant::a)] 

我最終得到不同的元素(A,DIV,IMG),但H2元素。

回答

1

我想獲得所有preceeds股利.sublist h2標記。

如何:

//div[class="sublist"]/preceding-sibling::h2 
+0

那就好。我不得不從h2變成h2 [1],以獲得中間兄弟之前的兄弟姐妹。 – Rod0n

+0

@ Rod0n是的,我給出的路徑將返回sublist div之前的h2標籤。 –

1

嘗試preceding-sibling

//div[@class="stack"]/div[@class="sublist"]/preceeding-sibling::*