如何在Nokogiri Ruby中浏览HTML,以及&遗骸而不是&

时间:2009-12-31 13:11:56

标签: ruby nokogiri

我的标题doc.at('head/title').inner_html出现&,应为&

我的原始文件是:

<head><title>Foo & Bar</title></head>

但是出现如下:

>> doc = Nokogiri::HTML.parse(file, nil, "UTF-8")
>> doc.at('head/title')
=> #<Nokogiri::XML::Element:0x..fdb851bea name="title" children=#<Nokogiri::XML::Text:0x..fdb850808 "Foo & Bar">>
>> doc.at('head/title').inner_html
=> "Foo &amp; Bar"

我不想像以下那样使用Iconv或CGI:

>> require 'cgi'
>> CGI.unescapeHTML(doc.at('head/title').inner_html)
=> "Foo & Bar"

这是丑陋和不方便的。

1 个答案:

答案 0 :(得分:7)

使用content代替inner_html将内容作为纯文本而不是(X)HTML。

irb(main):011:0> doc.at('head/title').content
=> "Foo & Bar"