2013-04-26 44 views
3

我試圖找出的XPath這將會從以下HTML的「文本數據3」代碼段內檢索文本XPath來跨度

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

到目前爲止,我已經嘗試下面的XPath這使我用類「內跨」

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

跨度,但不知道該怎麼添加更多的XPath,這將只給我從上面的HTML片段的文字「文本數據3」。 感謝

回答

7

您的特定情況下,這個XPath查詢將工作:

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

在這個online tester嘗試過了,這裏的結果:

  1. 你的HTML;
  2. 我的XPath表達式;
  3. 預期結果「文本數據3」。

enter image description here

+0

我在您提供的同一鏈接上檢查了您的解決方案,但它提供了[@ class =「inner-span」]的所有文本數據。我只想要文本數據3,不是所有的文本數據1,文本數據2,文本數據3. – shivamsupr 2013-04-27 07:11:07

+0

我添加了一個截圖來顯示我得到的結果以及我如何得到它,希望它有幫助。 – 2013-04-27 10:02:54

1

你可以選擇/html/body/div/div[4]/div[2]/div[2]/div/div[2]/div/span[@class="inner-span"]/text()[last()]來獲取文本節點(雖然開頭和結尾的空格),也可以使用XPath返回與normalize-space(/html/body/div/div[4]/div[2]/div[2]/div/div[2]/div/span[@class="inner-span"]/text()[last()])的字符串。