On Mon, Apr 21, 2008 at 11:32:01PM +0900, Max Russell wrote: > I have a snippet of code that looks like this: > > next if row.nil? > for i in 0...row.length > next if row[i].nil? > f.puts " <#{fields[i]}>#{row[i]}</#{fields[i]}>" > end > > this is part of a small script that parses a CSV document and then > creates an XML output file. > > However, I would like to add support for nesting elements in the output, > so that if the current column/value is surname or forename I can write > my output in a nested fashion: > > <PERSON> > <SURNAME>Brown</SURNAME> > <FORENAME>Bobby</FORENAME> > </PERSON> > > The problem I'm having is with the identification of the current element > as either SURNAME or FORENAME > > I've tried using: > > if #{fields[i]} == "<ORGANISATION_PERSON_SURNAME>" > > (where fields is CSV.shift) and I've also tried > > if row[i].data == 'ORGANISATION_PERSON_SURNAME' > > What is the best way of acessing this please? I would use FasterCSV and loop over each row, and have some controlling information that shows which row fields should be grouped into a higher tag. > I've attached my original script for perusal. > > Attachments: > http://www.ruby-forum.com/attachment/1765/csv_xml.rb Completely off the cuff, untested, but this is the approach I'm thinking of. http://p.ramaze.net/1154 enjoy, -jeremy -- ======================================================================== Jeremy Hinegardner jeremy / hinegardner.org