2012-03-07 9 views
2

実際に、Rails 3.2.1でjruby-1.6.7でREXML :: Documentを使用してXML文字列を解析する際に問題が発生しました。REXML :: Document.newがUS-ASCIIでエンコードされたXMLで解析できない

failed - can't convert NilClass into String 
backtrace of deliver! org/jruby/RubyIconv.java:207:in `initialize' 
org/jruby/RubyIconv.java:391:in `conv' 
/opt/jruby/lib/ruby/1.8/rexml/encodings/ICONV.rb:12:in `encode' 
/opt/jruby/lib/ruby/1.8/rexml/source.rb:55:in `encoding=' 
/opt/jruby/lib/ruby/1.8/rexml/source.rb:45:in `initialize' 
/opt/jruby/lib/ruby/1.8/rexml/source.rb:11:in `create_from' 
/opt/jruby/lib/ruby/1.8/rexml/parsers/baseparser.rb:121:in `stream=' 
/opt/jruby/lib/ruby/1.8/rexml/parsers/baseparser.rb:110:in `initialize' 
/opt/jruby/lib/ruby/1.8/rexml/parsers/treeparser.rb:9:in `initialize' 
/opt/jruby/lib/ruby/1.8/rexml/document.rb:227:in `build' 
/opt/jruby/lib/ruby/1.8/rexml/document.rb:43:in `initialize' 

私はそれがで失敗し、今のよう

doc = REXML::Document.new(xml_string) 

を行うとき

<?xml version="1.0" encoding="US-ASCII"?><a><b>Something</b></a> 

のような文字列は、それはJRubyの-1.6.5.1で動作するように使用されてい

ヘッダーを次のように変更する場合:

<?xml version="1.0" encoding="utf-8"?><a><b>Something</b></a> 

すべて問題ありません。私はシステム上のlibを見逃していますか?これは既知の問題ですか? US-ASCIIは無効ですか?

答えて

0

FWIW - 答えはありませんが、JRuby 1.6.5/Rails 3.1.3から1.6.7/Rails 3.2.3にも行きました。このxmlを解析しようとするSimpleXMLを使って同じ "新しい"

<?XMLバージョン(SOパーサ:)を経由して)、このようになります

&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt; 
&lt;simulacao&gt;&lt;ApoliceAuto Sistema=&quot;GISU&quot; Utilizador=&quot;USER&quot; 
ReferenciaExterna=&quot;16&quot; Ramo=&quot;90&quot; 
TipoSeguro=&quot;10&quot;&gt;&lt;Packs&gt;&lt;Pack 
codPack=&quot;1&quot;&gt;&lt;ValorAnualPack&gt;240.89&lt;/ValorAnualPack&gt;&lt; 
ValorSemestralPack&gt;124.39&lt;/ValorSemestralPack&gt;&lt; 
ValorContinuadoSemestralPack&gt; 
118.84&lt;/ValorContinuadoSemestralPack&gt;&lt;ValorTrimestralPack&gt;66.12&lt; 
/ValorTrimestralPack&gt;&lt;ValorContinuadoTrimestralPack&gt;60.57&lt; 
/ValorContinuadoTrimestralPack&gt;&lt;ValorMensalPack&gt;27.28&lt;/ValorMensalPack&gt;&lt; 
ValorContinuadoMensalPack&gt;21.73&lt;/ValorContinuadoMensalPack&gt;&lt;Mensagens/&gt;&lt; 
/Pack&gt;&lt;/Packs&gt;&lt;/ApoliceAuto&gt;&lt;/simulacao&gt; 

= " 1.0 "エンコーディング= " ISO-8859-1 "? > < ApoliceAutoシステマ= " GISU " Utilizador = " USER " ReferenciaExterna = ラモ= TipoSeguro = > <パック> <パックcodPack = > <ValorAnualPack> 240.89 </simulacao > <ValorAnualPack> <ValorSemestralPack> 124.39 </Va lorSemestralPack > <ValorContinuadoSemestralPack> 118.84 </ValorContinuadoSemestralPack > <ValorTrimestralPack> 66.12 </ValorTrimestralPack > <ValorContinuadoTrimestralPack> 60.57 </ValorContinuadoTrimestralPack > <ValorMensalPack> 27.28 </ValorMensalPack > <ValorContinuadoMensalPack> 21.73 </ValorContinuadoMensalPack > < Mensagens/> < /パック> < /パック> </ApoliceAuto > </simulacao >

関連する問題