我对红宝石和编程完全陌生。我正在尝试使用Ruby和nokogiri将XML导出为CSV。我的代码:
require 'csv'
require 'nokogiri'
file = File.read('example.xml')
doc = Nokogiri::XML(file)
a = []
csv = CSV.open('output.csv', 'wb')
CSV.open('output.csv', 'wb') do |csv|
csv << doc.at('Start').search('*').map(&:name)
doc.search('Start').each do |x|
csv << x.search('*').map(&:text)
end
end
我要转换的XML:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Start>
<Value1>2018-10-15</Value1>
<Value2>2018-11-17</Value2>
<Value3>
<ID type="Value3_ID">XXX1</ID>
</Value3>
<Value4>
<ID type="Value4_ID">XXX2</ID>
</Value4>
<Value5>
<ID type="Value5_ID">XXX3</ID>
</Value5>
<Value6.1>
<Value6.2>
<ID type="Value6.2_ID">XXX4</ID>
</Value6.2>
<Value6.3>XXX5</Value6.3>
<Value6.4>XXX6</Value6.4>
<Value6.5>
<ID type="Value6.5_ID">XXX7</ID>
</Value6.5>
<Value6.6>XXX8</Value6.6>
<Value6.7>XXX9</Value6.7>
</Value6.1>
<Value6.1>
<Value6.2>
<ID type="Value6.2_ID">XXX10</ID>
</Value6.2>
<SValue6.3>XXX11</SValue6.3>
<Value6.5>
<ID type="Value6.5_ID">XXX12</ID>
</Value6.5>
</Value6.1>
</Start>
</root>
很抱歉,这是一个非常基本的问题。对我来说,最重要的是xml将自动转换,因为我有很多不同的XML,所以我无法列出我需要的所有节点。 +最好没有这个空节点。...
谢谢!