繁体   English   中英

如何防止Nokogiri编码HTML片段中的实体

[英]How to prevent Nokogiri from encoding entities in HTML fragments

Nokogiri 1.5.0

我无法输出带有查询参数的链接的解析片段,特别是href中的&符号。 &符号由其html实体替换。

f = Nokogiri::HTML.fragment(%q{<a href="http://example.com?this=1&that=2">Testing</a>})
f.to_s    # => "<a href=\"http://example.com?this=1&amp;that=2\">Testing</a>"
f.to_html # => "<a href=\"http://example.com?this=1&amp;that=2\">Testing</a>"

没有帮助使用to_html(encoding: 'UTF-8')或US-ASCII。

这似乎很常见,解析有效的链接格式并希望将其呈现为有效的HTML。

如何使Nokogiri透明地返回未编码的Html实体? 没有帮助。

Nokogiri的HTML解析器自动更正源文档中的错误。 URL中的裸露&符号实际上是一个错误 ,所以Nokogiri正在纠正它。 如果你看一下f.errors ,你可以看到它并不认为&that是一个有效的实体,缺少一个分号,所以它修复符号来&amp; ,使其成为有效的HTML。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM