2012-01-18 25 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() 
関連する問題