Как выбрать элемент с его текстовым содержимым с помощью CSS, а не XPath?

"Nokogiri: как выбрать узлы по совпадению текста?" можно сделать это с помощью XPath, однако я ищу способ использовать выбор CSS, который соответствует тексту элемента.

PyQuery и PHPQuery могут это сделать. Разве нет библиотеки jQuery API для Ruby?


person h34y    schedule 28.09.2009    source источник
comment
Это вопрос Nokogiri (Ruby) или JQuery (Javascript)?   -  person Javier    schedule 28.09.2009


Ответы (2)


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"
person the Tin Man    schedule 10.03.2013

Невозможно сделать с помощью чистого 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/}
person akuhn    schedule 24.11.2009