我有一个哈希,我想使用SimpleXML解析为XML,但有一个技巧,我不知道如何处理:
我的哈希看起来像:
require 'xmlsimple'
test = { "subroot" => {
field1 => {'var1' = ['xyz'], 'var2' = ['yyyy']},
field2 => {'var1' = ['xyz'], 'var2' = ['yyyy']},
field3 => {'var1' = ['xyz'], 'var2' = ['yyyy']},
'id' = 'xxxxxx'} }
我使用以下方法将其解析为XML:
XmlSimple.xml_out(teste, 'RootName' => 'root')
导致:
<cenario>
<subroot id="xxxxxx">
<field1>
<var1>xyz</var1>
<var2>yyyy</var2>
</field1>
<field2>
<var1>xyz</var1>
<var2>yyyy</var2>
</field2>
<field3>
<var1>xyz</var1>
<var2>yyyy</var2>
</field3>
</subroot>
</cenario>
那没关系,就像魅力一样,但是当我需要循环时会有问题。 我做了一个自动测试,循环每个测试并将测试数据保存在哈希上,在测试结束时我需要将它保存在xml上,我需要得到这样的东西:
<cenario>
<subroot id="xxxxxx">
<field1>
<var1>xyz</var1>
<var2>yyyy</var2>
</field1>
<field2>
<var1>xyz</var1>
<var2>yyyy</var2>
</field2>
<field3>
<var1>xyz</var1>
<var2>yyyy</var2>
</field3>
</subroot>
.
.
.
<subroot id="xxxx10x">
<field1>
<var1>xyz</var1>
<var2>yyyy</var2>
</field1>
<field2>
<var1>xyz</var1>
<var2>yyyy</var2>
</field2>
<field3>
<var1>xyz</var1>
<var2>yyyy</var2>
</field3>
</subroot>
</cenario>
合并每个测试的每个哈希都不会做的伎俩cz它会阻止最后一个哈希(subroot) 我清楚了吗? SimpleXML不能做到这一点,还是我需要寻找另一种解决方案?
答案 0 :(得分:0)
寻求帮助......
我发现如果我在数组中放入哈希的“实例”,我就不需要哈希键... 我可以使用相同的Hash名称,每个数组插槽保存我的哈希实例,而不是我可以调用simpleXML或to_xml
不,我只需要弄清楚如何删除使xml更大的对象标签。