В XmlSimple есть опция, называемая «GroupTags», которая предназначена для того, чтобы делать то, что вы хотите в преобразовании XML в хэш. Кажется, он работает, когда тег, который вы хотите сгруппировать, НЕ является корневым.
Например, если в вашем xml действительно есть другой корневой элемент:
<root>
<fruits>
<fruit>APPLE</fruit>
<fruit>PEACH</fruit>
<fruit>BANANA</fruit>
</fruits>
</root>
Тогда вы можете сделать следующее:
options = {
'ForceArray' => false,
'GroupTags' => {'fruits'=>'fruit'}
}
XmlSimple.xml_in(xml, options)
#=> {"fruits"=>["APPLE", "PEACH", "BANANA"]}
Что соответствует JSON, который вы ищете.
К сожалению, если <fruits>
является вашим корневым элементом, опция GroupTags
не вступает в силу.