2014-12-06 85 views
0

在這個例子中我有這樣的代碼:前置兄弟返回空節點

<table class="basicinfo" cellspacing="0"> 
    <tr class="header"> 
    <td colspan="3"> 
     <div> 
     <h2 class="prod_card">Basic info</h2> 
     </div> 
    </td> 
    </tr> 

    <tr class="row2 item"> 
    <td class="cell0"> 
     <div> 
     Year 
     </div> 
    </td> 

    <td class="cell1"> 
     <div> 
     2005 
     </div> 
    </td> 
    </tr> 

    <tr class="row3 item alt"> 
    <td class="cell0"> 
     <div> 
     Extra 
     </div> 
    </td> 

    <td class="cell1"> 
     <div> 
     - 
     </div> 
    </td> 
    </tr> 
</table> 

現在,我想(比如說)year。我試圖在divYear內容之後獲得下一個div的內容。

我使用這個XPath沒有成功:

//div[preceding-sibling::div = 'Year'] 

而且任何人都知道一個好的網站開始學習的XPath?提前致謝!

回答

0

以下XPath

//div[parent::td/preceding-sibling::td//div[normalize-space()= 'Year']] 

有結果

<div>2005</div> 

你的XPath沒有工作,因爲div你正在尋找有沒有div元素爲preceding-siblingtdparenttdpreceding-sibling::td包含一個具有文字「年」的div - td//div。使用normalize-space()返回此div的文本,而不會在檢查相等性時需要任何空格。

僅供參考:normalize-space(),並且當您詢問優質資源時 - 我不想推薦任何特別的資源,但您應該查看以下信息中提到的資源:https://stackoverflow.com/tags/xpath/info(如果尚未完成),對於XPath軸,這是一個很好的可視化:http://www.xmlplease.com/axis