Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何避免在使用to_HTML时在Nokogiri中漂亮地打印HTML?_Ruby_Ruby On Rails 3_Nokogiri_Pretty Print - Fatal编程技术网

Ruby 如何避免在使用to_HTML时在Nokogiri中漂亮地打印HTML?

Ruby 如何避免在使用to_HTML时在Nokogiri中漂亮地打印HTML?,ruby,ruby-on-rails-3,nokogiri,pretty-print,Ruby,Ruby On Rails 3,Nokogiri,Pretty Print,我将Nokogiri与RubyonRails v2.3.8一起使用 在使用创建html时,有没有一种方法可以避免在Nokogiri中进行漂亮的打印 我了解到to_xml允许使用to_xml(:indent=>0)来实现这一点,但这不适用于to_html 现在我正在使用gsub删除新行字符。Nokogiri提供了任何选项吗?您可以使用Nokogiri::HTML.fragment()而不仅仅是Nokogiri::HTML()。当您对html执行时,它不会添加换行符、DOCTYPE标题或以任何方式使

我将Nokogiri与RubyonRails v2.3.8一起使用

在使用
创建html
时,有没有一种方法可以避免在Nokogiri中进行漂亮的打印

我了解到
to_xml
允许使用
to_xml(:indent=>0)
来实现这一点,但这不适用于
to_html


现在我正在使用
gsub
删除新行字符。Nokogiri提供了任何选项吗?

您可以使用
Nokogiri::HTML.fragment()
而不仅仅是
Nokogiri::HTML()
。当您对html执行
时,它不会添加换行符、DOCTYPE标题或以任何方式使其“漂亮”

我使用
解决了这个问题。要使用html(使用:0保存)

2.1.0:001>要求“nokogiri”
=>正确
2.1.0:002>doc=Nokogiri::HTML.fragment(“
  • 你好,boom!
    • ”) => # 2.1.0:003>doc.to_html =>“
      • \n砰的一声!
        • ” 2.1.0:004>文档到html(使用:0保存) =>“
          • 你好,轰!

测试日期:nokogiri(1.6.5)+libxml2.7.6.dfsg-1ubuntu1+ruby 2.1.0p0(2013-12-25修订版44422)[i686 linux]

也许您想使用
HTML.fragment()
?见[本问题][1]。[1] 请看我的正确答案。只需将您的HTML加载到HTML片段而不是HTML文档中,并且HTML不会添加格式Hi Hank,我尝试将以下HTML“
  • \”title=\“Concept inventory\”>概念清单进行片段化,这是一项评估,旨在揭示学生对某个主题的思考。
“这是我使用的HTML”
  • \n\“title=\”概念清单\>Concept inventory,一种显示学生对某个主题思考的评估
“我在这里做错了什么吗?您使用的是什么版本的
libxml2
?\n此错误可能是由于libxml2版本过时所致。我的libxml2版本为2.8.0+dfsg1-5ubuntu2.1。fragment()对我不起作用。还有其他解决问题的方法吗?仍然添加了换行符。这在nokogiri(1.6.5)+libxml2.7.6.dfsg-1ubuntu1+ruby 2.1.0p0(2013-12-25修订版44422)[i686 linux]上不起作用。见下面我的答案。
2.1.0 :001 > require 'nokogiri'
 => true
2.1.0 :002 >  doc = Nokogiri::HTML.fragment('<ul><li><span>hello</span> boom!</li></ul>')
 => #<Nokogiri::HTML::DocumentFragment:0x4e4cbd2 name="#document-fragment" children=[#<Nokogiri::XML::Element:0x4e4c97a name="ul" children=[#<Nokogiri::XML::Element:0x4e4c47a name="li" children=[#<Nokogiri::XML::Element:0x4e4c240 name="span" children=[#<Nokogiri::XML::Text:0x4e4c0a6 "hello">]>, #<Nokogiri::XML::Text:0x4e4c86c " boom!">]>]>]>
2.1.0 :003 > doc.to_html
 => "<ul><li>\n<span>hello</span> boom!</li></ul>"
2.1.0 :004 > doc.to_html(save_with: 0)
 => "<ul><li><span>hello</span> boom!</li></ul>"