Ruby 有没有办法漂亮地打印Nokogiri::HTML::Document对象?

Ruby 有没有办法漂亮地打印Nokogiri::HTML::Document对象?,ruby,nokogiri,Ruby,Nokogiri,有没有办法以漂亮的格式(而不是HTML)输出Nokogiri::HTML::Document对象?我希望能够看到物体随着层次加深而缩进的位置。比如使用awesome_print(试过了-不起作用)。谢谢 当前在控制台中,当我通过以下命令实例化Nokogiri对象时: irb(main):105:0> html = open("http://www.google.com") => #<Tempfile:/var/folders/kx/nwfjzgd153g071ykz0mtgd0

有没有办法以漂亮的格式(而不是HTML)输出Nokogiri::HTML::Document对象?我希望能够看到物体随着层次加深而缩进的位置。比如使用awesome_print(试过了-不起作用)。谢谢

当前在控制台中,当我通过以下命令实例化Nokogiri对象时:

irb(main):105:0> html = open("http://www.google.com")
=> #<Tempfile:/var/folders/kx/nwfjzgd153g071ykz0mtgd0r0000gp/T/open-uri20131225-35224-y57yx3>
irb(main):106:0> document = Nokogiri::HTML(html.read)
irb(main):105:0>html=open(“http://www.google.com")
=> #
irb(main):106:0>document=Nokogiri::HTML(HTML.read)
它会产生以下难以读取的blob:

=> #<Nokogiri::HTML::Document:0x3ff87d83d7d0 name="document" children=[#<Nokogiri::XML::DTD:0x3ff87d83d2f8 name="html">, #<Nokogiri::XML::Element:0x3ff87d83cf10 name="html" attributes=[#<Nokogiri::XML::Attr:0x3ff87d83ce98 name="itemscope">, #<Nokogiri::XML::Attr:0x3ff87d83ce84 name="itemtype" value="http://schema.org/WebPage">] children=[#<Nokogiri::XML::Element:0x3ff87d83c77c name="head" children=[#<Nokogiri::XML::Element:0x3ff87d83c4c0 name="meta" attributes=[#<Nokogiri::XML::Attr:0x3ff87d83c434 name="content" value="Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for.">, #<Nokogiri::XML::Attr:0x3ff87d83c420 name="name" value="description">]>, #<Nokogiri::XML::Element:0x3ff87d83371c name="meta" attributes=[#<Nokogiri::XML::Attr:0x3ff87d8335b4 name="content" value="noodp">, #<Nokogiri::XML::Attr:0x3ff87d8335a0 name="name" value="robots">]>, #<Nokogiri::XML::Element:0x3ff87d8325c4 name="meta" attributes=[#<Nokogiri::XML::Attr:0x3ff87d832510 name="itemprop" value="image">, #<Nokogiri::XML::Attr:0x3ff87d8324e8 name="content" value="/images/google_favicon_128.png">]>, #<Nokogiri::XML::Element:0x3ff87d82f964 name="title" children=[#<Nokogiri::XML::Text:0x3ff87d82f6d0 "Google">]>, #<Nokogiri::XML::Element:0x3ff87d82f478 name="script" children=[#<Nokogiri::XML::CDATA:0x3ff87d82f248 "(function(){\nwindow.google=
.....this goes on for awhile
=>#您可以使用它漂亮地打印您的
Nokogiri::HTML::Document
对象

由于
Nokogiri::HTML::Document
扩展了
Nokogiri::XML::Document
,它扩展了
Nokogiri::XML::Node
,因此您可以使用

我们也要这样做:

> document = Nokogiri::HTML(html.read)
> puts document.to_html
您可以使用来漂亮地打印
Nokogiri::HTML::Document
对象

由于
Nokogiri::HTML::Document
扩展了
Nokogiri::XML::Document
,它扩展了
Nokogiri::XML::Node
,因此您可以使用

我们也要这样做:

> document = Nokogiri::HTML(html.read)
> puts document.to_html
使用gem:

与Nokogiri的
to_html
方法不同,它还提供缩进和语法高亮显示。它并不完美,但比默认打印输出更有用。

使用gem:


与Nokogiri的
to_html
方法不同,它还提供缩进和语法高亮显示。它并不完美,但比默认打印输出有用得多。

您首选的输出是“谢谢!”??您需要覆盖Nokogiri的
inspect
到Nokogiri::XML::NodeSet和/或Nokogiri::XML::Node的
方法。在这一点上,您可以让它看起来像您想要的任何东西。您首选的输出是“谢谢!”??您需要覆盖Nokogiri的
inspect
to_s
方法,用于Nokogiri::XML::NodeSet和/或Nokogiri::XML::Node。在这一点上,你可以让它看起来像你想要的任何东西。这是行不通的。它仍然打印出一个斑点,并且不缩进。你试过这个吗?我还说我在我的问题描述下尝试了这个。直到你用样本输出编辑了你的问题,我才明白你在追求什么。不,
awesome\u print
不会那样做。它确实为HTML提供语法突出显示,并为其他Ruby对象提供缩进(尽管不适用于Nokogiri)。它仍然打印出一个斑点,并且不缩进。你试过这个吗?我还说我在我的问题描述下尝试了这个。直到你用样本输出编辑了你的问题,我才明白你在追求什么。不,
awesome\u print
不会那样做。它确实为HTML提供语法高亮显示,并为其他Ruby对象提供缩进(虽然不为Nokogiri提供)。我说我不希望它采用HTML格式,因为我想查看Nokogiri::HTML::Document对象中的节点、属性等。我说我不希望它采用HTML格式,因为我想查看哪些节点、属性,Nokogiri::HTML::Document对象中的etc。
$ gem install awesome_print
$ irb

require 'open-uri'
require 'nokogiri'
require 'awesome_print'

html = open("http://www.google.com")
document = Nokogiri::HTML(html.read)

ap document