1

次のような HTML 構造があります。

<div class='content'>
 <h2>Title</h2>
 <p>Some content for Title</p>
 <h2>Another Title</h2> 
 <p>Content for Another Title</p>
 <p>Some more content for Another title</p>
 <h2>Third</h2>
 <p>Third Content</p>
</div>

出力するコードを書き込もうとしています:

Title
 - Some content for Title
Another Title
 - Content for Another Title
 - Some more content for Another title
Third
 - Third Content

私は 5 分前まで Nokogiri を使用したことがありません。

content = doc.at_css('.content')
content.css('h2').each do |node|
  puts node.text
end
content.css('p').each do |node|
  puts " - "
  puts node.text
end

これは明らかにピースをグループ化していません。Nokogiri で必要なグループ化を実現するにはどうすればよいですか?

4

2 に答える 2

1

あなたはほとんどそれを持っていました。これが私がそれを修正する方法です。

content.css('h2').each do |node|
  puts node.text
  while node = node.at('+ p')
    puts " - #{node.text}"
  end
end

+ p次(隣接)を意味しますp

于 2013-05-15T07:42:09.397 に答える