2009-10-18 124 views
3

考慮一個HTML頁面Xpath的:你怎麼選擇第二個文本節點(具體文本節點)

<html> 
apple 

orange 

drugs 

</html> 

你怎麼能選擇橙色的使用XPath?

/html/text()[2] 

不起作用。

+3

這裏沒有幾個文本節點。您有一個包含換行符的單個文本節點。 – 2009-10-18 00:38:50

+0

如果文本通過
分開,該怎麼辦? – pingu 2009-10-18 02:07:01

+1

XPath無法在HTML上工作 - 它在XML上工作。除非你的HTML真的是XHTML,否則你不會得到任何好的結果 – 2009-10-18 09:38:16

回答

3

你不能直接通過選擇。你需要調用的XPath字符串函數剪切文本()來獲取字符串你想

substring-after(/html/text()," ") // something like this, 

這裏是一個list of string functions

1

如果字符串與<br>分離它的工作原理

doc = Nokogiri::HTML("""<html> 
    apple 
    <br> 
    orange 
    <br> 
    drugs 
    </html>""") 
    p doc.xpath('//text()[2]') #=> orange 
相關問題