2017-01-26 8 views
-1

"square"(たとえば201)の値を取得したいとします。 hereが説明するように、私は、そうしようとしたが、それは動作しません:値によるXPathの選択

./li[attributeTitle='Этаж'] 

HTMLコード:任意の助け

<div class = "A"> 
    <ui class = "B"> 
     <li> 
      <span class = "attributeTitle"> Floor </span> 
      <span class = "attributeValue"> 3 </span> 
     </li> 
     <! A random more items "li" > 
     <li> 
      <span class = "attributeTitle"> Square </span> 
      <span class = "attributeValue"> 201 </span> 
     </li> 
     <li> 
      <span class = "attributeTitle"> Nrooms </span> 
      <span class = "attributeValue"> 4 </span> 
     </li> 
    </ui> 
</div> 

感謝。

+0

どのように機能していますか?あなたは何を期待し、代わりに何を見ますか? –

+0

完全であるが最小限の入力HTML文書を表示してください。ありがとう。その他のヘルプ:http://stackoverflow.com/help/mcve –

答えて

1

テキストは、いくつかの文字列が含まれているかどうかを確認するために、XPathで機能を使用することができます。

"//div[@class='attributeTitle'][contains(text(),'Square')]" 

これはあなたにこのノードを取得します。

<span class = "attributeTitle"> Square </span> 

あなた右のそれを下回っている値のノードを取得するには使用可能following-sibling::span

"//div[@class='attributeTitle'][contains(text(),'Square')]/following-sibling::span[1]" 

さらに、[1]は、複数の兄弟が存在する場合のために最初の兄弟だけが必要であることを示します。また、[class='attributeValue']を使用して、この特定のクラスを持つ兄弟だけが必要であることを示したり、兄弟が1人しかいないと思われる場合は何も使用したりしないでください。

+0

'/ div [@ class = 'attributeTitle'と(text()、 'Square')を含む]]'も動作します – becixb

+0

あなたが投稿したものが完全なDOMであれば、取得するときに[1]は必要ありません正方形要素の後にスパンノードが1つしかないので、値。 – becixb

関連する問題