我有以下 XML
<CallResult>
<Success>true</Success>
<Result>
<ZoneInfo>
<Id>3</Id>
<Name>test-room</Name>
<NId>sdfsdg</NId>
</ZoneInfo>
<ZoneInfo>
<Id>16</Id>
<Name>Dynamic</Name>
<NId>sadadrwed543th</NId>
</ZoneInfo>
<ZoneInfo>
<Id>32</Id>
<Name>lobby</Name>
<NId>ssdfrgfdfg</NId>
</ZoneInfo>
<ZoneInfo>
<Id>33</Id>
<Name>conf</Name>
<NId>sdfsfewr232f</NId>
</ZoneInfo>
</Result>
<Message>Success</Message>
</CallResult>
我正在尝试解析 XML,以便每个不同的“ZoneInfo”属性都是数组中的哈希。
例如
区域 [0] = 哈希 [Id => 32,名称 => 大厅,NId => ssdfrgfdfg]
Zones[1] = Hash[Id => 33, Name => conf, NId => sdfsfewr232f] 等等...
我有限的 XML 解析知识已经收获颇丰。我真正知道的是如何提取单个元素。例如
doc = REXML::Document.new(xmlData)
doc.elements.each("CallResult/Success") do |ele|
p ele.text;
end
有人可以提供更多关于如何循环从每个“ZoneInfo”元素中提取信息的信息吗?
谢谢