2016-11-15 1 views
0

...のXPath検索 - コンバイン2つのXPathセレクタ私はそこのXPathについての簡単な質問のtousandsがあるが、私はそれがどのように2つのあまりにも単純ではない式を結合するために得るいけない知っている

私のXML構造:

私はクラスの後に検索してdiv要素を選択するために達成知っクラス

によって

<div class="some-container"> 
    <div class="btn btn-blue"> 
     <div class="btn-text"><!-- Select by class --> 
      <span> <!-- Select by text--> 
       Download 
      </span> 
     </div> 
    </div> 
</div> 

を選択:

//*/div[contains(concat(' ', @class, ' '), ' btn-text')] 

も私は単に/spanを追加することができます知っているが、その後、私はテキストで選択したいスパンを選択するには、テキストで

を選択します。

//*/text()[normalize-space(.)='Download']/parent::* 

これらのセレクタの両方が正常に動作しているが、私は彼らにクラスの

  1. 検索を組み合わせたい検索
  2. "BTN":私は、XPath(form here)を得たというユースケースについては 正確に一致する範囲内のテキストの場合

そのようCONCATそれが仕事test-exampleいけないする:それは動作したい場合でも、

//div[contains(concat(' ', @class, ' '), ' btn-text')]/text()[normalize-space(.)='Download']/parent::* 

を助けることができる誰でも

spanタグによって何の選択はありませんか?

+0

'// divの[@class = 'BTN-テキスト'] /スパン[テキスト:

することは、それが仕事を得るだけでspanはなくテキストノードを探すためにXPathを変更するには)= 'ダウンロード'] '? – sideroxylon

答えて

1

あなたのXPathは、divの中に直接テキストノードを探していますが、あなたが探しているテキストノードはspanです。それが成功しない理由です。 (

//div[contains(concat(' ', @class, ' '), ' btn-text ')]/span[normalize-space(.)='Download'] 
関連する問題