Consulting

Results 1 to 3 of 3

Thread: Convert from CSV to XML

  1. #1

    Convert from CSV to XML

    I have been searching for code that will convert a specifically hard coded named csv file to an xml file of the same name.xml. I have found the following code (written by a J Norris) which purports to do this, but in a Ruby(?) scripting language, whatever that is.
    #!/usr/bin/ruby
    
    require 'csv'
    
    print "CSV file to read: "
    input_file = gets.chomp
    
    print "File to write XML to: "
    output_file = gets.chomp
    
    print "What to call each record: "
    record_name = gets.chomp
    
    csv = CSV::parse(File.open(input_file) {|f| f.read} )
    fields = csv.shift
    
    puts "Writing XML..."
    
    File.open(output_file, 'w') do |f|
      f.puts '<?xml version="1.0"?>'
      f.puts '<records>'
      csv.each do |record|
        f.puts " <#{record_name}>"
        for i in 0..(fields.length - 1)
          f.puts "  <#{fields[i]}>#{record[i]}</#{fields[i]}>"
        end
        f.puts " </#{record_name}>"
      end
      f.puts '</records>'
    end # End file block - close file
    Thanks for any help in directing me to a solution.

  2. #2
    VBAX Master stanl's Avatar
    Joined
    Jan 2005
    Posts
    1,141
    Location
    Microsoft has an MsPersist Provider as part of MDAC (versions 2.5 or greater). This provides an XML format that can be treated as a regular ADO recordset, which means it can be searched, filtered, have rows added/edited/deleted and be linked to standard db's as typed fields.

    The quickest way to move a csv to this format is to write a short ADO routine which uses the Jet 4.0 provider and a schema.ini entry - ... Oh, and this xml format [Microsoft calls it the z:row format] can be moved to a more standard with MSXML DomDocument.

    Post a sample of your csv (with headers) and I'll show you what I mean.

    Stan

  3. #3
    I have many, many csv files with different structures to be converted, so let's just consider a generic format as below:
    DATE, Name, High, Low, Open, Close
    Trust this is OK?

    Many thanks for your assistance.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •