No release in over 3 years
Low commit activity in last 3 years
There's a lot of open issues
An easy to use, extensible library for semi-automatically mapping Ruby objects to XML and back. Includes an XPath interpreter.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
 Dependencies

Development

~> 0
 Project Readme

XML-MAPPING: XML-to-object (and back) Mapper for Ruby, including XPath Interpreter

Xml-mapping is an easy to use, extensible library that allows you to semi-automatically map Ruby objects to XML trees and vice versa.

Trivial Example

sample document

<?xml version="1.0" encoding="ISO-8859-1"?>

<item reference="RF-0001">
    <Description>Stuffed Penguin</Description>
    <Quantity>10</Quantity>
    <UnitPrice>8.95</UnitPrice>
</item>

mapping class

class Item
  include XML::Mapping

  text_node :ref, "@reference"
  text_node :descr, "Description"
  numeric_node :quantity, "Quantity"
  numeric_node :unit_price, "UnitPrice"

  def total_price
    quantity*unit_price
  end
end

usage

i = Item.load_from_file("item.xml")
=> #<Item:0xb7888c90 @ref="RF-0001" @quantity=10, @descr="Stuffed Penguin", @unit_price=8.95>

i.unit_price = 42.23
xml=i.save_to_xml #convert to REXML node; there's also o.save_to_file(name)
xml.write($stdout,2)

<item reference="RF-0001">
    <Description>Stuffed Penguin</Description>
    <Quantity>10</Quantity>
    <UnitPrice>42.23</UnitPrice>
</item>

This is the most trivial example -- the mapper supports arbitrary array and hash (map) nodes, object (reference) nodes and arrays/hashes of those, polymorphic mappings, multiple mappings per class, fully programmable mappings and arbitrary user-defined node types. Read the project documentation for more information.