当我Hash.from_xml(@xml)
在 Rails 中将 XML 结构转换为散列时,解析器不区分空数组和 nil 值,而 XML 将立即终止\
为空数组的节点描述<audio_languages/>
为与属性nil="true"
被解释为 nil的节点价值观。
XML 结构(我可以控制如何生成)如下所示:
<response>
<medias>
<media>
<id>1</id>
<name>Media-1</name>
<audio_languages/>
<avg_rating nil="true"></avg_rating>
</media>
<media>
<id>2</id>
<name>Media-2</name>
<audio_languages/>
<avg_rating nil="true"></avg_rating>
</media>
</medias>
</response>
的预期输出Hash.from_xml(@xml)
将是:
{"response"=>{"medias"=>{"media"=>[{"id"=>"1", "name"=>"Media-1", "audio_languages"=>[], "avg_rating"=>nil}, {"id"=>"2", "name"=>"Media-2", "audio_languages"=>[], "avg_rating"=>nil}]}}}
audio_languages
相反,我得到和的 nil 值avg_rating
:
{"response"=>{"medias"=>{"media"=>[{"id"=>"1", "name"=>"Media-1", "audio_languages"=>nil, "avg_rating"=>nil}, {"id"=>"2", "name"=>"Media-2", "audio_languages"=>nil, "avg_rating"=>nil}]}}}