【问题标题】:Ruby XML to CSV with nokogiri使用 nokogiri 将 Ruby XML 转换为 CSV
【发布时间】:2019-05-12 10:59:06
【问题描述】:

我对 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,所以我无法列出我需要的所有节点。 + 如果没有这个空节点就好了....

谢谢!!

【问题讨论】:

    标签: ruby xml csv nokogiri


    【解决方案1】:
    猜你喜欢
    • 2012-12-21
    • 1970-01-01
    • 2016-08-26
    • 2014-03-18
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 2010-11-16
    • 2017-05-23
    相关资源
    最近更新 更多