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

Copyright (C) 2004-2012 Jürgen Mangler <univie at juergen.mangler.ac.at>

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

This is just a transitional package intended to require the nokogiri based version of xml-smart.

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 other libxml bindings, 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
puts = node.find("string(name)")