Ruby 如何使用XmlSimple将哈希解析为XML?

Ruby 如何使用XmlSimple将哈希解析为XML?,ruby,hash,xml-parsing,xml-simple,Ruby,Hash,Xml Parsing,Xml Simple,我有一个哈希,我想用SimpleXML解析成XML,但有一个技巧我不知道如何处理: 我的哈希看起来像: require 'xmlsimple' test = { "subroot" => { field1 => {'var1' = ['xyz'], 'var2' = ['yyyy']}, field2 => {'var1' = ['xyz'], 'var2' = ['yyyy']}, field3 => {'var1' = ['xyz'], 'var2' =

我有一个哈希,我想用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>

xyz
年份
xyz
年份
xyz
年份
这没关系,就像一个魅力,但有一个问题,当我需要循环。 我在做一个自动测试,在每个测试上循环,并将测试数据保存在哈希表上。在测试结束时,我需要将其保存在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>

xyz
年份
xyz
年份
xyz
年份
.
.
.
xyz
年份
xyz
年份
xyz
年份
在每个测试中合并每个散列不会起作用,因为它会阻止最后一个散列(子散列) 我说清楚了吗? simpleXML不能做到这一点吗?或者我需要寻找另一种解决方案吗?

Thks寻求帮助

我发现,如果我将散列的“实例”放入数组中,我就不需要散列键。。。 我可以使用相同的散列名称,每个数组槽保存一个散列实例,而不是调用simpleXML或to_xml


不,我只需要找出如何删除使xml更大的对象标记。

请重新表述您的问题,很难说您想要什么。当您需要循环时,会出现问题吗?你能说得更具体一点吗?对不起,英语不好。我正在做一个自动测试脚本,它需要保存每个测试数据以供进一步检查。为了实现这一点,我的应用程序将每个测试循环(Junit…@test…@parametrization..明白了吗?)保存在散列上,在测试结束时,我需要将其保存为XML。问题是我不能在散列上重复“subroot”名称(duhh),但我的xml必须具有相同的模式。。。。字段。。。。。领域。。。。抱歉,但很难把它写清楚。尝试使用解决方案,但没有成功。。。已更改测试id为的字符串的子脚本文本。。。哈希值填充正确,但当我转换它时。。它将删除除最后一个之外的所有条目。。