代码之家  ›  专栏  ›  技术社区  ›  so_mv

Hash.from_xml双转义符;

  •  1
  • so_mv  · 技术社区  · 15 年前
    >> h={:title => "hi & mv288" }
    => {:title=>"hi & mv288"}
    >> h.to_xml
    => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<hash>\n  <title>hi &amp;amp; mv288</title>\n</hash>\n"
    >> Hash.from_xml h.to_xml
    => {"hash"=>{"title"=>"hi & mv288"}}
    

    如果您注意到第2行和第4行 &amp; 标题值中的字符在 一系列Hash.to-xml和from-xml方法调用。

    有什么方法可以防止Hash.from_xml转换 &安培; 进入&中;。

    1 回复  |  直到 15 年前
        1
  •  1
  •   so_mv    15 年前

    我们将xml解析器切换到Nokogiri来解决这个问题。

    在您的环境中添加此行.rb

    ActiveSupport::XmlMini.backend = 'Nokogiri'
    

    不过,你必须安装nokogiri gem。如果你需要一个纯洁的 nokogiri的java实现,看看这个。 https://github.com/tenderlove/nokogiri/wiki/pure-java-nokogiri-for-jruby

    安装命令是,

    gem install nokogiri --pre
    

    你也可以使用 LibXml 作为xmlmini.backend来解决此问题。