【发布时间】:2015-02-06 07:02:10
【问题描述】:
我正在尝试将一些 XML 解析为一个数组。这是我正在解析的一部分 XML:
<Group_add>
<Group org_pac_id="0000000001">
<org_legal_name>NAME OF GROUP</org_legal_name>
<par_status>Y</par_status>
<Quality>
<GPRO_status>N</GPRO_status>
<ERX_status>N</ERX_status>
</Quality>
<Profile_Spec_list>
<Spec>08</Spec>
</Profile_Spec_list>
<Location adrs_id="OR974772594SP2280XRDXX300">
<other_tags>xx</other_tags>
</Location>
</Group>
<Group org_pac_id="0000000002">
...
</Group>
</Group_add>
我目前能够获取“组”的属性和“org_legal_name”中的文本,并使用下面的代码将它们添加到数组中。
def parse(input_file, output_array)
puts "Parsing #{input_file} data. Please wait..."
doc = Nokogiri::XML(File.read(input_file))
doc.xpath("//Group").each do |group|
["org_legal_name"].each do |name|
output_array << [group["org_pac_id"], group.at(name).inner_html]
end
end
end
我也想将位置“adrs_id”添加到 output_array,但似乎无法弄清楚那部分。
示例输出:
["0000000001", "NAME OF GROUP", "OR974772594SP2280XRDXX300"]
["0000000002", "NAME OF GROUP 2", "OR974772594SP2280XRDXX301"]
【问题讨论】:
-
您需要展示您想要的输出示例。添加
adrs_id很容易。在不知道你想要什么的情况下添加它是很困难的。此外,您的 XML 可能过于简单。看起来您想要遍历多个组标签,包含多个“org_legal_name”标签,但 XML 没有显示。而且,在这种情况下,“组”不能是文档的根。