NAME
XML::MyXML - A simple XML module
VERSION
Version 0.083
SYNOPSIS
use XML::MyXML qw(tidy_xml xml_to_object);
my $xml = "<item><name>Table</name><price><usd>10.00</usd><eur>8.50</eur></price></item>";
print tidy_xml($xml);
my $obj = xml_to_object($xml);
print "Price in Euros = " . $obj->path('price/eur')->value;
$obj->simplify is hashref { item => { name => 'Table', price => { usd => '10.00', eur => '8.50' } } }
$obj->simplify({ internal => 1 }) is hashref { name => 'Table', price => { usd => '10.00', eur => '8.50' } }
EXPORT
tidy_xml, xml_to_object, object_to_xml, simple_to_xml, xml_to_simple, check_xml
FUNCTIONS
tidy_xml($raw_xml)
Returns the XML string in a tidy format (with tabs & newlines)
xml_to_object($raw_xml)
Creates an 'XML::MyXML::Object' object from the raw XML provided
object_to_xml($object)
Creates an XML string from the 'XML::MyXML::Object' object provided
simple_to_xml($simple_array_ref)
Produces a raw XML string from an array reference such as this one: [ thing => [ name => 'John', location => [ city => 'New York', country => 'U.S.A.' ] ] ]
xml_to_simple($raw_xml) or xml_to_simple($raw_xml, { strip => 1 }) or xml_to_simple($raw_xml, { internal => 1 })
Produces a very simple hash object from the raw XML string provided. An example hash object created thusly is this: { thing => { name => 'John', location => { city => 'New York', country => 'U.S.A.' } } }
Since the object created is a hashref, duplicate keys will be discarded. WARNING: This function only works on very simple XML strings, i.e. children of an element may not consist of both text and elements (child elements will be discarded in that case)
If called with the 'internal' flag set, then the hashref returned will be the first value of the hashref that would otherwise be returned, i.e. a hashref created only by the contents of the top element in the XML and which doesn't contain information about the top-level tag (See SYNOPSIS section for an example)
If called with the 'strip' flag set, then all text contents will be stripped of possible beginning and/or ending whitespace.
To use both flags, write: &xml_to_simple($raw_xml, { internal => 1, strip => 1 }).
check_xml($raw_xml)
Returns 1 if the $raw_xml string is valid XML (valid enough to be used by this module), and 0 otherwise
OBJECT METHODS
$obj->path("subtag1/subsubtag2/.../subsubsubtagX")
Returns the element specified by the path as an XML::MyXML::Object object. When there are more than one tags with the specified name in the last step of the path, it will return all of them as an array.
$obj->value and $obj->value({ strip => 1 })
When the element represented by the $obj object has only text contents, returns those contents as a string. If the $obj element has no contents, value will return an empty string. Can be used with the 'strip' flag (as in: $obj->value({ strip => 1 })) to strip possible whitespace in the beginning and end of the value.
$obj->attr('attrname')
Returns the value of the 'attrname' attribute of top element. Returns undef if attribute does not exist.
$obj->tag
Returns the tag of the $obj element (after stripping it from namespaces). E.g. if $obj represents an <rss:item> element, $obj->tag will just return 'item'. Returns undef if $obj doesn't represent a tag.
$obj->simplify
Returns a very simple hashref, like the one returned with &XML::MyXML::xml_to_simple. Same restrictions and warnings apply. May be called with the 'internal' and/or 'strip' flags (for more on these flags, see this documentation on the 'xml_to_simple' function)
$obj->to_xml
Returns the XML string of the object, just like calling &object_to_xml( $obj )
$obj->to_tidy_xml
Returns the XML string of the object in tidy form, just like calling &tidy_xml( &object_to_xml( $obj ) )
AUTHOR
Alexander Karelas, <karjala at karjala.org>
BUGS
Please report any bugs or feature requests to bug-xml-myxml at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=XML-MyXML. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc XML::MyXML
You can also look for information at:
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
RT: CPAN's request tracker
Search CPAN
ACKNOWLEDGEMENTS
COPYRIGHT & LICENSE
Copyright 2006 Alexander Karelas, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.