2012-01-18 75 views
3

我在計算以下XPATH時遇到了困難。還有其他幾個具有相似屬性的元素(包括ID,但它不是我的頁面),並且選擇唯一確保正確元素的方法是通過其相鄰標籤「Copyright」獲取它。這是HTML:使用XPath通過相鄰標籤查找元素

<div class="row"> 
    <div class="label">Copyright :</div> 
    <div id="container-id" class="field" >2011 Homeland Ent</div> 
</div> 
<div class="row"> 
    <div class="label">Another Label :</div> 
    <div id="container-id" class="field" >Another Entry</div> 
</div> 

注意的是,由於畸形的HTML,//*[@id="container-id"]是不夠的在這裏。得到文字「2011 Homeland Ent」的正確XPATH是什麼?

+0

您能提供完整的HTML還是示例URL? –

回答

3

像這樣的東西也許(我不知道,如果「版權」文本是搜索的一部分,包括它無論如何

//*[@class="label" and starts-with(., "Copyright")]/following-sibling::*[@id="container-id"] 
2

它看起來像每個row包含單個label/field對。如果這是真的,那麼更短的,更簡單的表達(不需要following-sibling)是可能的:

//*[div[@class='label' and starts-with(., 'Copyright')]]/div[@id='container-id'] 
0

使用此XPath,它會工作

//div[text()="Copyright :"]/parent::node()/div[@id="container-id"]/text() 
相關問題