XML::Mini - Homepage and latest version: http://minixml.psychogenic.com INSTALLATION: 3 Methods are available: - CPAN # perl -MCPAN -e 'install XML::Mini' - Local perl Makefile.PL make make test su ; make install - Simple (no need for root priv) Since XML::Mini is a pure Perl implementation, you can simply tar zxvf XML-Mini-XXX.tar.gz mv lib/XML /path/to/destination and then, in your code, use: #!/usr/bin/perl use lib '/path/to/destination'; use XML::Mini::Document; # ... create and parse XML! NAME XML::Mini - Stand-alone, pure Perl implementation of the MiniXML XML generator and parser interface (http://minixml.psychogenic.com). SYNOPSIS use XML::Mini::Document; ############# Generate XML ############### # Create a XML document and fill it up my $htmlDoc = XML::Mini::Document->new(); my $docRoot = $htmlDoc->getRoot(); my $html = $docRoot->createChild('html'); my $head = $html->createChild('head'); my $title = $head->createChild('title', 'XML::Mini Generated HTML page'); my $style = $head->createChild('style'); $style->comment("body,td,a,p,.h{font-family:arial,sans-serif;} .q{text-decoration:none; color:#0000cc;}"); my $body = $html->createChild('body'); $body->attribute('bgcolor', '#ffffff'); $body->attribute('link', '#0000cc'); $body->attribute('vlink', '#551a8b'); my $h = $body->createChild('h3', 'This page was generated by XML::Mini!'); my $p1 = $body->createChild('p', "It slices, dices and never forgets the ! heh ;) "); my $br = $p1->createChild('br'); $p1->text("View the source of this page to take a look at "); my $href = $p1->createChild('a'); $href->attribute('href', 'http://minixml.psychogenic.com'); $href->text('XML::Mini'); $p1->text("'s clean HTML."); # Display the page print $htmlDoc->toString(); # ... ############# Parse XML ############### # Parse existing XML string my $xmlDoc = XML::Mini::Document->new(); $xmlDoc->fromString($XMLString); # Now we can fetch elements: my $part = $xmlDoc->getElementByPath('partsRateReply/part'); my $partId = $part->attribute('id'); my $price = $partList->getElement('price'); print "Part $partId costs: " . $price->getValue() . "\n"; DESCRIPTION XML::Mini is a set of Perl (and PHP) classes that allow you to access XML data and create valid XML output with a tree-based hierarchy of elements. It provides an easy, object-oriented interface for manipulating XML documents and their elements. It is currently being used to send requests and understand responses from remote servers in Perl or PHP applications. XML::Mini does not require any external libraries or modules. The XML::Mini.pm module includes a number of variable you may use to tweak XML::Mini's behavior. These include: $XML::Mini::AutoEscapeEntities - when greater than 0, the values set for nodes are automatically escaped, thus $element->text('4 is > 3') will set the contents of the appended node to '4 is > 3'. Default setting is 1. $XML::Mini::IgnoreWhitespaces - when greater than 0, extraneous whitespaces will be ignored (maily useful when parsing). Thus Hello There will be parsed as containing a text node with contents 'Hello There' instead of ' Hello There '. Default setting is 1. $XML::Mini::CaseSensitive - when greater than 0, element names are treated as case sensitive. Thus, $element->getElement('subelement') and $element->getElement('SubElement') will be equivalent. Defaults to 0. Class methods escapeEntites TOENCODE This method returns ToENCODE with HTML sensitive values (eg '<', '>', '"', etc) HTML encoded. Log MESSAGE Logs the message to STDERR Error MESSAGE Logs MESSAGE and exits the program, calling exit() AUTHOR LICENSE XML::Mini module, part of the XML::Mini XML parser/generator package. Copyright (C) 2002 Patrick Deegan All rights reserved This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Official XML::Mini site: http://minixml.psychogenic.com Contact page for author available at http://www.psychogenic.com/en/contact.shtml SEE ALSO XML::Mini::Document, XML::Mini::Element http://minixml.psychogenic.com