web-dev-qa-db-ja.com

スパン内のテキストを取得するためのXPath

次のHTMLスニペットから「テキストデータ3」を取得するXPathを理解しようとしています

  <span class="inner-span">
    Text-data 1
    <br>
    <span>Text Data 2</span> text Data 3
   </span>

これまでのところ、クラス「inner-span」のスパンにつながる次のXpathを試しました。

 /html/body/div/div[4]/div[2]/div[2]/div/div[2]/div/span[@class="inner-span"]

しかし、Xpathに何を追加すればよいかわからないため、上記のHtmlスニペットからテキスト「textData3」しか表示されません。ありがとう

6
shivamsupr

特定のケースでは、このXPathクエリは機能します。

normalize-space(//span[@class="inner-span"]/text()[last()])

これで試してみました オンラインテスター そして結果は次のとおりです。

  1. あなたのHTML;
  2. 私のXPath式;
  3. 期待される結果「テキストデータ3」。

enter image description here

12
Rolando Isidoro

/html/body/div/div[4]/div[2]/div[2]/div/div[2]/div/span[@class="inner-span"]/text()[last()]を選択してテキストノードを取得するか(先頭と末尾に空白があります)、normalize-space(/html/body/div/div[4]/div[2]/div[2]/div/div[2]/div/span[@class="inner-span"]/text()[last()])で文字列を返すXPathを使用できます。

1
Martin Honnen