Hpricot的html
方法只吐出文档中的HTML:
> Hpricot('<p>a</p>').html
=> "<p>a</p>"
相比之下,我与Nokogiri最接近的是inner_html
方法,它将输出包装在<html>
和<body>
标签中:
> Nokogiri.HTML('<p>a</p>').inner_html
=> "<html><body><p>a</p></body></html>"
如何使用Nokogiri获取Hpricot的html
方法的行为?即,我想要这个:
> Nokogiri.HTML('<p>a</p>').some_method_i_dont_know_about
=> "<p>a</p>"
答案 0 :(得分:3)
怎么样:
require 'nokogiri'
puts Nokogiri.HTML('<p>a</p>').to_html #
# >> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
# >> <html><body><p>a</p></body></html>
如果您不希望Nokogiri创建HTML文档,那么您可以告诉它将其解析为文档片段:
puts Nokogiri::HTML::DocumentFragment.parse('<p>a</p>').to_html
# >> <p>a</p>
在任何一种情况下,to_html
方法都会返回文档的HTML版本。
答案 1 :(得分:2)
> Nokogiri.HTML('<p>a</p>').xpath('/html/body').inner_html
=> "<p>a</p>"