的<description>
標籤的內容是HTML編碼,因此它需要被解碼回HTML,然後重新解析:
require 'nokogiri'
doc = Nokogiri::XML::DocumentFragment.parse(<<EOT)
<description>
<img style='vertical-align:middle' src='http://pitre-web.tpg.ch/images?ligne=D' title='Perturbation Line D' alt='Perturbation Line D' />
<br/><br/>21:03 - THEME - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</description>
EOT
這是怎麼了找到該標籤:
description_text = doc.at('description')
要訪問其內容使用:
description_text = doc.at('description').text
# => "\n<img style='vertical-align:middle' src='http://pitre-web.tpg.ch/images?ligne=D' title='Perturbation Line D' alt='Perturbation Line D' />\n<br/><br/>21:03 - THEME - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n"
要做點什麼的內容:
description_doc = Nokogiri::HTML::DocumentFragment.parse(description_text)
description_doc.at('img')['src'] # => "http://pitre-web.tpg.ch/images?ligne=D"
真正的XML不匹配是在給定的問題。這裏是展示正在遇到的一個更好的例子:在此基礎上
<?xml version='1.0' encoding='UTF-8'?>
<rss>
<channel>
<title />
<description />
<item>
<description>
<img style='vertical-align:middle' src='http://pitre-web.tpg.ch/images?ligne=2' title='Perturbation Ligne 2' alt='Perturbation Ligne 2' />
<br/><br/>18:47 - Surcharge de trafic - Retard de 8 minutes entre Marbriers et Gen&egrave;ve-Plage.
</description>
</item>
<item>
<description>
<img style='vertical-align:middle' src='http://pitre-web.tpg.ch/images?ligne=19' title='Perturbation Ligne 19' alt='Perturbation Ligne 19' />
<br/><br/>18:43 - Cimeti&egrave;re Saint-Georges - direction Vernier-Village - Incident &agrave; bord du v&eacute;hicule - Immobilisation du v&eacute;hicule
</description>
</item>
</channel>
</rss>
,這裏的工程,以提取網址代碼:
require 'nokogiri'
doc = Nokogiri::XML(open('xml'))
img_srces = doc.search('item description').map{ |description|
desc_doc = Nokogiri::HTML(description.text)
desc_doc.at('img')['src']
}
img_srces
# => ["http://pitre-web.tpg.ch/images?ligne=2",
# "http://pitre-web.tpg.ch/images?ligne=19"]
你想找到''標籤,或在得到其內容? –
2014-11-14 22:15:32