2011-04-26 101 views
0

示例文件內容: -文件中的紅寶石解析

<DT><A HREF="http://www.cnn.com/" ADD_DATE="1299885544">CNN</A> 
     <DT><A HREF="http://www.nytimes.com/" ADD_DATE="1299885544">The New York Times</A> 
     <DT><A HREF="feed://news.google.com/?output=rss" ADD_DATE="1299885544">Google News</A> 
     <DT><A HREF="http://www.news.com/" ADD_DATE="1299885544">CNET News.com</A> 
     <DT><A HREF="http://espn.go.com/" ADD_DATE="1299885544">ESPN</A> 

代碼我使用: -

path = File.join(directory, bookmark.file_file_name) 
file = Nokogiri::HTML(open(path)) 
count = 1 
file.search('//*[@href]').each do |m| 
    p m 
    p m[:href] 
    rescue 
    next 
end 
end 

O /上面的代碼號碼: -

下午

<Nokogiri::XML::Element:0x81dbed64 name="a" attributes=[#<Nokogiri::XML::Attr:0x81dbe120 name="href" value="http://maps.google.com/">, #<Nokogiri::XML::Attr:0x81dbe0e4 name="add_date" value="1299885544">] children=[#<Nokogiri::XML::Text:0x81db3590 "Google Maps">]> 

P M [:HREF]

http://maps.google.com/ 

欲同時具有URL和它的值。即 「飼料://news.google.com/輸出= RSS」 和 「谷歌新聞」

回答

1

m.text將返回值:

h = {} #=> {} 


irb(main):021:0> file.search('//*[@href]').each do |m| 
irb(main):022:1* h[m[:href]] = m.text 
irb(main):023:1> end 
=> 0 
irb(main):024:0> h 
=> {"http://www.cnn.com/"=>"CNN", "http://www.nytimes.com/"=>"The New York Times", "feed://news.google.com/?output=rss"=>"Google News", "http://www.news.com/"=>"CNET News.com", "http://espn.go.com/"=>"ESPN"} 
irb(main):025:0>