[英]What is the difference in Nokogiri::HTML(html_content) vs Nokogiri::HTML.parse(html_content)
我在互联网上搜索并找不到它们之间的区别。
没有什么。 它们都是Nokogiri::HTML::Document.parse
的便捷方法。
这是Nokogiri.HTML
即。 Nokogiri::HTML
。
module Nokogiri
class << self
###
# Parse HTML. Convenience method for Nokogiri::HTML::Document.parse
def HTML thing, url = nil, encoding = nil, options = XML::ParseOptions::DEFAULT_HTML, &block
Nokogiri::HTML::Document.parse(thing, url, encoding, options, &block)
end
end
module Nokogiri
module HTML
class << self
###
# Parse HTML. Convenience method for Nokogiri::HTML::Document.parse
def parse thing, url = nil, encoding = nil, options = XML::ParseOptions::DEFAULT_HTML, &block
Document.parse(thing, url, encoding, options, &block)
end)
很难弄清楚你尝试了什么,但这里有一个简单的测试,可以向你展示两者之间的差异:
require 'nokogiri'
Nokogiri::HTML('<p>').to_html
# => "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n" +
# "<html><body><p></p></body></html>\n"
Nokogiri::HTML.parse('<p>').to_html
# => "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n" +
# "<html><body><p></p></body></html>\n"
或者,甚至更好:
Nokogiri::HTML('<p>').to_html == Nokogiri::HTML.parse('<p>').to_html
# => true
如果使用.parse 稍微快一点,有什么想法吗?
不难发现:
require 'fruity'
require 'nokogiri'
compare do
nokogiri_html { Nokogiri::HTML('<p>').to_html }
nokogiri_html_parse { Nokogiri::HTML.parse('<p>').to_html }
end
# >> Running each test 128 times. Test will take about 1 second.
# >> nokogiri_html is similar to nokogiri_html_parse
如果一个稍微快一点,那就可以忽略不计了。 有关说明,请参阅Fruity 文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.