开发者

How do I get the next HTML element in Nokogiri?

Let's say my HTML document is like:

<div class="headline">News</div>
<p>Some interesting news here</p>
<div class="headline">Sports</div>
<p>Baseball is fun!</p>

I can get the headline divs with the following code:

require 'rubygems'
require 'nokogiri'
require 'open-uri'

url = "mypage.html"
doc = Nokogiri::HTML(open(url))

doc.css(".head开发者_如何转开发line").each do |item|  
  puts item.text
end 

But how do I access the content in the following p tag so that News is related to Some interesting news here, etc?


You want Node#next_element:

doc.css(".headline").each do |item|
  puts item.text
  puts item.next_element.text
end

There is also item.next, but that will also return text nodes, where item.next_element will return only element nodes (like p).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜