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

NokogiriでHpricotのメソッドの動作を取得するにはどうすればよいhtmlですか?つまり、私はこれが欲しい:

> 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 に答える