From: pdg Date: 2006-11-07T04:40:13+09:00 Subject: REXML Hi All, As a first exercise with Ruby, I am going through the Pickaxe book and creating a jukebox. I haven't even tried to create an array of songs yet, because I got distracted and wanted to work this out. I am trying toi feed in the data from my iTunes xml file to it to get the data, I can get it to work if I delete most of the xml file, but when it's 5-6 gig, rexml just seems to die. I have vaguely heard that stream parsing may be the answer, but am totally unaware of how to use it. here is the code in my xml reading program so far (saample.rb basically just creates song items): require 'rexml/document' require "sample.rb" doc = File.open("iTunes.xml") xml = REXML::Document.new(doc) name = "name" artist = "artist" time = 60 cnt = 0 xml.elements.each("//key") do |k| if k.text == "Name" then name = k.next_sibling.text cnt += 1 end if k.text == "Artist" then artist = k.next_sibling.text end if k.text == "Total Time" then time = k.next_sibling.text.to_i/1000.0 song = Song.new(name,artist,time) song.to_s end end puts cnt