2011-07-22 48 views
0

我試圖解析與所需的部分以下格式的HTML文件解析/迭代HTML文件:與角度來說,Hpricot /引入nokogiri

<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 =「標題」標籤,並得到一個列表,並做相同的文字股利。然後遍歷每個按順序輸出標題和文本。

我可以讓Hpricot/Nokogiri在解析文件時按順序保存它嗎?

+0

文字div是否總是遵循標題div?重複的部分是否在兩種類型的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']」)。each do | a | puts a.search(「// a [@ class ='headline']」)。inner_html puts a.next.inner_html end' 但你的看起來更乾淨。 – mcchots