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 最後のハッシュ (サブルート) を防ぎます。simpleXML ではうまくいかないのでしょうか、それとも別の解決策を探す必要がありますか?