2009-09-28 6 views
8

"Nokogiri: How to select nodes by matching text?" có thể thực hiện điều này thông qua XPath, tuy nhiên, tôi đang tìm cách sử dụng lựa chọn CSS phù hợp với văn bản của phần tử.Làm cách nào để chọn một phần tử có nội dung văn bản thông qua CSS không phải XPath?

PyQuery và PHPQuery có thể thực hiện việc này. Không có một jQuery API lib cho Ruby?

+0

Đây có phải là câu hỏi Nokogiri (Ruby) hoặc JQuery (Javascript) không? – Javier

Trả lời

3

có thể không được thực hiện với CSS tinh khiết, bạn sẽ phải trộn nó với Ruby đang

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/} 
15

Nokogiri (bây giờ) thực hiện bộ chọn jQuery, làm cho nó có thể tìm kiếm nội dung của một nút:

Ví dụ:

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"