2012-01-18 4 views
3

다음 XPATH를 알아 내는데 어려움이 있습니다. 유사한 속성 (ID를 포함하지만 내 페이지가 아님)이있는 다른 요소가 몇 가지 있습니다. 올바른 요소가 선택되도록하는 유일한 방법은 인접한 레이블 인 "저작권"을 사용하여 가져 오는 것입니다. 때문에 잘못된 HTML로, //*[@id="container-id"] 여기에 충분하지 않을 것이라고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입니다. 텍스트 "2011 Homeland Ent"를 얻는 데 필요한 올바른 XPATH는 무엇입니까? 이 같은

+0

전체 HTML 또는 예제 URL을 제공 할 수 있습니까? –

답변

3

뭔가는 "저작권"텍스트 검색의 일부 경우에 아마 (나는 확실하지 않았다 어쨌든

row는 하나의 label/ field 쌍을 포함처럼 보이는
//*[@class="label" and starts-with(., "Copyright")]/following-sibling::*[@id="container-id"] 
2

이 포함되어 있습니다. 경우 그 짧고 간단한 표현 (즉 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() 
관련 문제