Great forum, been a reader for a long time. My first post comes as a
request for some help.
I am trying to process a CSV of undetermined length (want to know how to
incorporate ‘wc -l’).
The CSV has 4 columns that I want to map to XML nodes.
I am having trouble writing each CSV line to an individual XML file (100
lines = 100 XML files). The first CSV element in each line would be the
xml file name.
Seems pretty straight forward but I am pulling my hair out trying to
make it work. Any help would be greatly appreciated. I have googled
everywhere for it. I appreciate any help in advance!
Thanks James, gettign this error, trying to work it out:
makeXML.rb:7: undefined method +' for nil:NilClass (NoMethodError) from /Library/Ruby/Gems/1.8/gems/fastercsv-1.4.0/lib/faster_csv.rb:1514:ineach’
from
/Library/Ruby/Gems/1.8/gems/fastercsv-1.4.0/lib/faster_csv.rb:1017:in foreach' from /Library/Ruby/Gems/1.8/gems/fastercsv-1.4.0/lib/faster_csv.rb:1191:inopen’
from
/Library/Ruby/Gems/1.8/gems/fastercsv-1.4.0/lib/faster_csv.rb:1016:in
`foreach’
from makeXML.rb:6
(100
lines = 100 XML files). The first CSV element in each line would be
the
xml file name.
Seems pretty straight forward but I am pulling my hair out trying to
make it work. Any help would be greatly appreciated. I have googled
everywhere for it. I appreciate any help in advance!
How about something like this:
$ cat for_xml.csv
filename
one
two
three
$ cat csv2xml.rb
#!/usr/bin/env ruby -wKU
require “rubygems”
require “faster_csv”
FCSV.foreach(ARGV.shift, :headers => true) do |row|
File.open(row[“filename”] + “.xml”, “w”) do |f|
# create XML data here…
end
end
$ ruby csv2xml.rb for_xml.csv
$ ls *.xml
one.xml three.xml two.xml
Hope that helps.
James Edward G. II
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.