gpt4 book ai didi

ruby-on-rails - 如何在 Nokogiri 中使用 [% 特殊字符

转载 作者:行者123 更新时间:2023-12-03 23:31:04 24 4
gpt4 key购买 nike

我在 Rails 中使用 Nokogiri 来解析我的 HTML 并将自动关闭标签转换为常规标签。这很好用,但它也会转换我们的模板标签,即 [%%],例如:

html = "<a href='[% hello %]'>Hello from [% Us %]</a>"
Nokogiri::HTML::DocumentFragment.parse(html).to_html

将转换为:

<a href='%5B%%20hello%20%%5D'>Hello from [% Us %]</a>

如何在转换后不使用 gsub 来避免它?

这没有帮助:

html = "<a href='[% hello %]'>Hello from [% Us %]</a>"
doc = Nokogiri::HTML::Document.new
doc.encoding = 'UTF-8'
doc.fragment(html).to_html
#=> "<a href=\"%5B%%20hello%20%%5D\">Hello from [% Us %]</a>"

最佳答案

@anothermh 实际上回答了我的问题(请参阅我的问题下方的评论)。我最终采用了他的建议 (to_xml)

但是,我需要更多的代码解析,而不是我决定不提及的。我需要能够保留标签中的特殊字符,但也需要将自闭合标签转换为常规标签。

我的解决方案是使用 XHTML 格式,如下所述:https://www.rubydoc.info/github/sparklemotion/nokogiri/Nokogiri/XML/Node/SaveOptions#FORMAT-constant

html = "... my html ..."    
doc = Nokogiri::HTML::Document.new
doc.encoding = 'UTF-8'
final = doc.parse(html).to_xml(:save_with => Nokogiri::XML::Node::SaveOptions::DEFAULT_XHTML)

关于ruby-on-rails - 如何在 Nokogiri 中使用 [% 特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58598620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com