XML::Smart - A Ruby class for fast and simple XML access

Copyright © 2004-2007 Jürgen Mangler <[email protected]>

Ruby/XML/Smart is freely distributable according to the terms of the GNU Lesser General Public License (see the file ‘COPYING’).

This program is distributed without any warranty. See the file ‘COPYING’ for details.

Installation

  • You need a least ruby 1.8.6

  • You need a least rake 0.5.0

  • a libxml version known to work is 1.6.28

The installation process is very simple:

  • rake

  • become root
  • rake install

Documentation

View the examples in the ./examples subdirectory. In the ./examples/Visualise subdirectory you can find a simple XPath visualiser. Never try to mix this module with the old libxml binding, or you will get nasty segfaults.

SYNOPSIS TO CHANGE A FILE ON THE DISK

require 'xml/smart'

XML::Smart.modify(File.dirname($0) + "/EXAMPLE.xml") { |doc|
  node = doc.find("/test/names").first
  node.add("test_node",{"attr" => 12}, "Muahaha")
  node.add("test_node", "Muahaha", {"attr" => 13})
  node.add("test_node", {"attr" => 14})
  node.add("test_node", "Muahaha")
  node.add("test_node")
}

SYNOPSIS TO QUERY A FILE

require 'xml/smart'

doc = XML::Smart.open(File.dirname($0) + "/EXAMPLE.xml")

node = doc.find("/test/names").first
node.add("test_node",{"attr" => 12}, "Muahaha")
node.add("test_node", "Muahaha", {"attr" => 13})
node.add("test_node", {"attr" => 14})
node.add("test_node", "Muahaha")