2011-07-22 15 views
0

とパース/反復のhtmlファイル。Hpricot /鋸山

HEADLINE 
    Text goes here. 

    HEADLINE 
    Text goes here. 

現在、私は<のクラス=「見出し」と>タグを検索し、リストを取得し、テキストのdivと同じことを行うことができます。次に、それぞれを繰り返し、見出しとテキストを順番に出力します。

ファイルの解析中にHpricot/Nokogiriをこの順に保存することはできますか?

+0

divは常にheadline divに従っていますか?繰り返し部分は2つのタイプのdivの間で交互に表示されますか? –

+0

はい。テキストdivは見出しdivに続き、両方ともすべての見出しに対して繰り返されます。 – mcchots

答えて

2

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

これは完全に機能します。 – mcchots

+0

私はこれをHpricot '(doc /" div [@ class = 'link'] ")で使っていました。 puts a.search( "// a [@ class = 'headline']")。inner_html a.next.inner_html end' を入れますが、あなたはよりクリーンに見えます。 – mcchots

関連する問題