使用nokogiri将Ruby XML转换为CSV



我对ruby和编程都很陌生。我正在尝试使用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,所以我无法列出我需要的所有节点。+如果没有这些空节点,那就太好了。。。。

谢谢!!

只需检查一些现有的示例:

  • https://bits.ashleyblewer.com/blog/2016/09/21/lorena-parsing-xml-into-csv-with-ruby/
  • https://gist.github.com/bxt/454bb3b6ad7d2fdba0a5b1efb9b45d86
  • 使用Ruby/Nokogiri将XML节点解析为CSV

相关内容

  • 没有找到相关文章

最新更新