Ruby 如何使用XmlSimple将哈希解析为XML?
我有一个哈希,我想用SimpleXML解析成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' =
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为的字符串的子脚本文本。。。哈希值填充正确,但当我转换它时。。它将删除除最后一个之外的所有条目。。