Когда я преобразовываю XML-структуру в хэш с помощью Hash.from_xml(@xml)
в Rails, синтаксический анализатор не различает пустые массивы и нулевые значения, тогда как XML изображает узлы, которые немедленно заканчиваются \
, как пустые массивы, например. <audio_languages/>
по сравнению с атрибутом nil="true"
интерпретируются как нулевые значения.
Структура 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
и 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}]}}}