簡體   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