Разбор / итерация HTML-файла с помощью Hpricot / Nokogiri - PullRequest
0 голосов
/ 22 июля 2011

Я пытаюсь проанализировать HTML-файл следующего формата в необходимом разделе:

    <div style="something">
      <div class="link">
         <a href="http://..." class="headline">Headline</a>
      </div>
      <div class="text">
         Text summary is here
      </div>
      repeating...
   </div>

Я хочу вывести заголовок, за которым следует текст.

   HEADLINE
   Text goes here.

   HEADLINE
   Text goes here.

В настоящее время я могу искать тег с помощью class = "headline", получать список и делать то же самое с текстом div. Затем выполните итерацию по каждому из них, чтобы вывести заголовок и текст последовательно.

Могу ли я получить Hpricot / Nokogiri, чтобы сохранить его в таком порядке, пока он анализирует файл?

1 Ответ

2 голосов
/ 22 июля 2011

Конечно.

doc = Nokogiri::HTML(html)
doc.xpath('//a[@class="headline"]').each do |headline|
  puts headline.text
  puts headline.xpath('../following-sibling::div[1]').text
end
...