如果我有一帮喜欢的元素:
<p>A paragraph <ul><li>Item 1</li><li>Apple</li><li>Orange</li></ul></p>
是否有一个内置的引入nokogiri方法会得到我,包含文本“苹果”所有,例如,p元素? (该示例元件上方将匹配,例如)。
如果我有一帮喜欢的元素:
<p>A paragraph <ul><li>Item 1</li><li>Apple</li><li>Orange</li></ul></p>
是否有一个内置的引入nokogiri方法会得到我,包含文本“苹果”所有,例如,p元素? (该示例元件上方将匹配,例如)。
引入nokogiri可以使用jQuery CSS扩展做到这一点(现在的):
require 'nokogiri'
html = '
<html>
<body>
<p>foo</p>
<p>bar</p>
</body>
</html>
'
doc = Nokogiri::HTML(html)
doc.at('p:contains("bar")').text.strip
=> "bar"
这里是工作的XPath:
require 'nokogiri'
doc = Nokogiri::HTML(DATA)
p doc.xpath('//li[contains(text(), "Apple")]')
__END__
<p>A paragraph <ul><li>Item 1</li><li>Apple</li><li>Orange</li></ul></p>
希望帮助
您还可以做到这一点很容易Nikkou :
doc.search('p').text_includes('bar')
尝试使用这个XPath:
p = doc.xpath('//p[//*[contains(text(), "Apple")]]')