On Jul 22, 2005, at 12:36 PM, Cam wrote:

> Hi!
>
> I'm trying to write a few simple apps (a flash-card type program for
> chinese characters, and a simple address book type program), and for
> the file format i want to use XML.  Anyway, i don't need anything
> complex at all... just the most basic reading/writing of xml files
> possible.  i was looking through a bunch of the various ruby-xml
> libraries, and it seems that rexml is the 'official' xml library for
> ruby?  I like the looks of it, but it seems overly complex for what i
> want to do.  My friend steve told me about a module in perl called
> xml:simple (apparently it just loads up the xml file into a nice
> little hash for you).  Anyway, that sounds like just the thing for me,
> and i was wondering if ruby had anything similar.  If not maybe just
> some simple example code for rexml (the debian packages didnt' seem to
> come w/ any).  Tips or suggestions on xm file i/o would be greatly
> appreciated.

Are you strictly tied to the XML idea?  YAML is a standard Ruby  
library and pretty darn easy to use.  Here's an example:

$ ls
yaml_example.rb
$ cat yaml_example.rb
#!/usr/local/bin/ruby -w

require "YAML"

unless File.exists? "contacts.yaml"    # save some YAML
         # build up some example data...
         require "ostruct"

         contacts = Hash.new

         contact = OpenStruct.new
         contact.first_name = "James"
         contact.last_name  = "Gray"
         contact.address    = "Where Ever Dr."
         contact.state      = "Edmond"
         contact.city       = "OK"
         contact.zip        = "12345"

         contacts["#{contact.last_name}, #{contact.first_name}"] =  
contact

         contact = contact.dup
         contact.first_name = "Dana"

         contacts["#{contact.last_name}, #{contact.first_name}"] =  
contact

         # store data in a YAML file
         File.open("contacts.yaml", "w") { |file| YAML.dump(contacts,  
file) }
else    # reload YAML data
         # load
         contacts = File.open("contacts.yaml") { |file| YAML.load 
(file) }

         # and use...
         p contacts["Gray, James"].first_name
end
$ ruby yaml_example.rb
$ ls
contacts.yaml   yaml_example.rb
$ cat contacts.yaml
---
"Gray, James": !ruby/object:OpenStruct
   table:
     :city: OK
     :first_name: James
     :zip: "12345"
     :last_name: Gray
     :address: Where Ever Dr.
     :state: Edmond
"Gray, Dana": !ruby/object:OpenStruct
   table:
     :city: OK
     :first_name: Dana
     :last_name: Gray
     :zip: "12345"
     :address: Where Ever Dr.
     :state: Edmond
$ ruby yaml_example.rb
"James"

If you really do need XML, REXML is the way to go, in my opinion.   
It's not too hard to learn and it will grow with you.  We've had a  
few Ruby Quizzes that dealt (in part) with XML writing and parsing.   
Scanning those solutions will show you examples.  Here are some links...

For writing XML see Hans Fugal's and Brian Kang's solutions to:

http://www.rubyquiz.com/quiz6.html

For reading XML see most of the solutions to:

http://www.rubyquiz.com/quiz30.html

Now to finally answer your actual question:  Yes, we do have a port  
of XML::Simple.  You can find the Ruby version here:

http://www.maik-schmidt.de/xml-simple.html

Hope that helps.

James Edward Gray II