Как мне разобрать хеш в XML с помощью XmlSimple? - PullRequest
0 голосов
/ 17 мая 2011

У меня есть хеш, который я хотел проанализировать в XML с помощью SimpleXML, но есть хитрость, с которой я не знаю, как справиться:

Мой хэш выглядит так:

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>

объединение каждого хэша в каждом тесте не поможет, потому что он предотвращает последний хэш (подкорень). Я ясно дал понять?Разве simpleXML не может сработать или мне нужно искать другое решение?

1 Ответ

0 голосов
/ 19 мая 2011

Спасибо за помощь ...

Я понял, что мне не нужны хеш-ключи, если я помещаю "экземпляр" хеша в массив ... Я могу использовать то же имя Hash, каждый слот массива сохраняет экземпляр моего хэша, чем я могу назвать simpleXML или to_xml

Нет, мне просто нужно выяснить, как удалить теги объектов, которые делают XML больше.

...