ruby - 如何通过匹配文本来选择节点

标签 ruby nokogiri

如果我有一堆元素,比如:

<p>A paragraph <ul><li>Item 1</li><li>Apple</li><li>Orange</li></ul></p>

Nokogiri 中是否有内置方法可以获取所有包含文本“Apple”的 p 元素? (例如,上面的示例元素将匹配)。

最佳答案

Nokogiri 可以(现在)使用 CSS 的 jQuery 扩展来做到这一点:

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"

关于ruby - 如何通过匹配文本来选择节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1474688/

相关文章:

html - 如何将所有类 ="..."属性扩展为样式 ="..."?

ruby - 如何使用 XPath 和 Nokogiri 获取 XML 节点的内容

ruby-on-rails - 更改设置的 AR Mailer?

css - 在 ruby​​ on rails 中打印时如何隐藏链接 url

mysql - 如何使用 ruby​​ on Rails 为 ActiveRecord 关联添加唯一性

ruby - Nokogiri 等效于 jQuery closest() 方法,用于在树中查找第一个匹配的祖先

ruby-on-rails - 查找日期时间与今天日期匹配的记录 - Ruby on Rails

Ruby Watir - 获取 NoMethodError : undefined method 'start' on a newly installed PC

ruby - 使用 Nokogiri::XML::Builder 忽略空节点的最干净的方法是什么

ruby - Nokogiri 和按名称查找元素