0

我想使用 JRuby 创建一些 XML 文件,但它不像 MRI Ruby 那样转义字符。

> "<node attr=#{'this is "my" complicated <String>'.encode(:xml => :attr)} />"

核磁共振

  ruby-1.9.3-p194 
  => "<node attr=\"this is &quot;my&quot; complicated &lt;String&gt;\" />"

JRuby

  jruby-1.7.2 
  => "<node attr=this is \"my\" complicated <String> />"
4

2 回答 2

1

请不要像这样创建 XML。使用 Nokogiri 或其他 XML 库。

require 'rubygems'
require 'nokogiri'

builder = Nokogiri::XML::Builder.new do |xml|
  xml.node(:attr => 'this is "my" complicated <String>')
end

puts builder.to_xml
# prints: <node attr="this is &quot;my&quot; complicated &lt;String&gt;"/>

另见Nokogiri::XML::Builder 文档

于 2013-03-04T12:49:55.243 回答
0

这确实是一个 JRuby 错误。它现在已在master中修复,应该可以在 JRuby 1.7.4 中使用。

于 2013-05-01T10:49:30.990 回答