1

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>"

如何html使用 Nokogiri 获得 Hpricot 方法的行为?即,我想要这个:

> Nokogiri.HTML('<p>a</p>').some_method_i_dont_know_about
=> "<p>a</p>"
4

2 回答 2

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 版本。

于 2011-01-30T04:07:56.113 回答
2
> Nokogiri.HTML('<p>a</p>').xpath('/html/body').inner_html
=> "<p>a</p>"
于 2011-01-30T04:07:23.333 回答