【问题标题】:How do I select an element with its text content via CSS not XPath?如何通过 CSS 而不是 XPath 选择具有文本内容的元素?
【发布时间】:2010-12-01 21:15:07
【问题描述】:

Nokogiri: How to select nodes by matching text?”可以通过 XPath 做到这一点,但是,我正在寻找一种方法来使用与元素文本匹配的 CSS 选择。

PyQuery 和 PHPQuery 可以做到这一点。没有 Ruby 的 jQuery API 库吗?

【问题讨论】:

  • 这是 Nokogiri(Ruby) 还是 JQuery(Javascript) 问题?

标签: ruby nokogiri


【解决方案1】:

Nokogiri(现在)实现了 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"

【讨论】:

    【解决方案2】:

    不能用纯 CSS 完成,你必须将它与 Ruby 代码混合

      doc = Nokogiri::HTML("<p>A paragraph <ul><li>Item 1</li><li>Apple</li><li>Orange</li></ul></p>")
      p doc.css('li').select{|li|li.text =~ /Apple/}
    

    【讨论】:

      猜你喜欢
      • 2017-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-27
      • 1970-01-01
      相关资源
      最近更新 更多