0

JRubyを使用していくつかのXMLファイルを作成したいのですが、MRIRubyのように文字をエスケープしていません。

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

MRI

  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 に答える