Я пытаюсь захватить записи журнала событий, которые передаются в xlm, конвертировать их в хэш, а затем хранить в базе данных.Доступ к хешу хеш-памяти в Ruby
В настоящее время я использую XmlSimple gem, чтобы преобразовать вход xml в хэш.
Тест входного образца:
require 'xmlsimple'
h = XmlSimple.xml_in('
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Service Control Manager" Guid="{555908d1-a6d7-4695-8e1e-26931d2012f4}" EventSourceName="Service Control Manager" />
</System>
</Event>
', { 'KeyAttr' => 'name' })
puts "#{h}"
Это возвращает:
{"xmlns"=>"http://schemas.microsoft.com/win/2004/08/events/event", "System"=>[{"Provider"=>[{"Name"=>"Service Control Manager", "Guid"=>"{555908d1-a6d7-4695-8e1e-26931d2012f4}", "EventSourceName"=>"Service Control Manager"}]}]}
Как я могу получить доступ к системе поставщика GUID?
я могу вернуть все элементы системы, выполнив:
puts "#{h['System']}"
Однако
puts "#{h['System']['Provider'}"
Возвращает:
can't convert String into Integer (TypeError)
Я попытался заливкой результат в строку с не повезло. У меня неправильное форматирование XmlSimple? Имею ли я доступ к неправильному ключу? Есть ли другой способ сделать это?
Спасибо за помощь!
Спасибо! Я не заметил этого! puts "# {h ['System'] [0] ['Provider'] [0] ['Guid']}« Дает мне значение GUID, которое я получил после. – Michael