Provided by: libtemplate-plugin-xml-perl_2.17-3_all bug

NAME

       Template::Plugin::XML - XML plugin for the Template Toolkit

SYNOPSIS

           [% USE XML;
              dom    = XML.dom('foo.xml');
              xpath  = XML.xpath('bar.xml');
              simple = XML.simple('baz.xml');
              rss    = XML.simple('news.rdf');
           %]

           [% USE XML(file='foo.xml');
              dom    = XML.dom
              xpath  = XML.xpath
              # ...etc...
           %]

           [% USE XML(dir='/path/to/xml');
              file  = XML.file('foo.xml' );
              dom   = file.dom
              xpath = file.xpath
              # ...etc...
           %]

DESCRIPTION

       The Template-XML distribution provides a number of Template Toolkit plugin modules for
       working with XML.

       The Template::Plugin::XML module is a front-end to the various other XML plugin modules.
       Through this you can access XML files and directories of XML files via the
       Template::Plugin::XML::File and Template::Plugin::XML::Directory modules (which subclass
       from the Template::Plugin::File and Template::Plugin::Directory modules respectively).
       You can then create a Document Object Model (DOM) from an XML file
       (Template::Plugin::XML::DOM), examine it using XPath queries
       (Template::Plugin::XML::XPath), turn it into a Perl data structure
       (Template::Plugin::XML::Simple) or parse it as an RSS (RDF Site Summary) file.

       The basic XML plugins were distributed as part of the Template Toolkit until version 2.15
       released in May 2006.  At this time they were extracted into this separate Template-XML
       distribution and an alpha version of this Template::Plugin::XML front-end module was
       added.

       The Template::Plugin::XML module is still in development and not guaranteed to work
       correctly yet.  However, all the other XML plugins are more-or-less exactly as they were
       in TT version 2.14 and should work as normal.

       For general information on the Template Toolkit see the documentation for the Template
       module or <http://template-toolkit.org>.  For information on using plugins, see
       Template::Plugins and "USE" in Template::Manual::Directives.  For further information on
       XML, see <http://xml.com/>.

METHODS

       The XML plugin module provides a number of methods to create various other XML plugin
       objects.

       file(name)

       Creates a Template::Plugin::XML::File object.  This is a subclass of
       Template::Plugin::File.

       dir(path)

       Creates a Template::Plugin::XML::Directory object.  This is a subclass of
       Template::Plugin::Directory.

       dom()

       Generate a Document Object Module from an XML file.  This can be called against a
       directory, file or an XML plugin object, as long as the source XML filename is defined
       somewhere along the line.

           [% dom = XML.dom(filename) %]

           [% file = XML.file(filename);
              dom  = file.dom
           %]

           [% dir = XML.dir(dirname);
              dom = dir.dom(filename)
           %]

       xpath()

       Perform XPath queries on the file.  Like the dom() method, xpath() can be called against a
       file, directory or an XML plugin object.

           [% xpath = XML.xpath(filename) %]

           [% file  = XML.file(filename);
              xpath = file.xpath
           %]

           [% dir   = XML.dir(dirname);
              xpath = dir.xpath(filename)
           %]

       simple()

       TODO: As per dom() and xpath() but for XML::Simple

       rss()

       TODO: As per dom(), xpath() and simple() but for XML::RSS

XML PLUGINS

       These are the XML plugins provided in this distribution.

       Template::Plugin::XML

       Front-end module to the XML plugin collection.

       Template::Plugin::XML::File

       This plugin module is used to represent individual XML files.  It is a subclass of the
       Template::Plugin::File module, providing the additional dom(), xpath(), simple() and other
       methods relevant to XML files.

       Template::Plugin::XML::Directory

       This plugin module is used to represent directories of XML files.  It is a subclass of the
       Template::Plugin::Directory module and provides the same additional XML related methods as
       Template::Plugin::XML::File.

       Template::Plugin::XML::DOM

       Plugin interface providing access to the XML::DOM module.

           [% USE XD = XML.Dom %]
           [% dom = XD.parse_file('example.xml') %]
           [% pages = dom.getElementsByTagName('page') %]

       Template::Plugin::XML::RSS

       Plugin interface providing access to the XML::RSS module.

           [% USE news = XML.RSS('news.rdf') -%]
           [% FOREACH item IN news.items -%]
              * [% item.title %]
           [% END %]

       Template::Plugin::XML::Simple

       Plugin interface providing access to the XML::Simple module.

           [%  USE xml = XML.Simple('example.xml') %]

       Template::Plugin::XML::XPath

       Plugin interface providing access to the XML::XPath module.

           [% USE xpath = XML.XPath('example.xml');
              bar = xpath.find('/foo/bar');
           %]

AUTHORS

       Andy Wardley wrote the Template Toolkit plugin modules, with assistance from Simon
       Matthews in the case of the XML::DOM plugin.  Matt Sergeant wrote the XML::XPath module.
       Enno Derksen and Clark Cooper wrote the XML::DOM module.  Jonathan Eisenzopf wrote the
       XML::RSS module.  Grant McLean wrote the XML::Simple module.  Clark Cooper and Larry Wall
       wrote the XML::Parser module.  James Clark wrote the expat library.

COPYRIGHT

       Copyright (C) 1996-2007 Andy Wardley.  All Rights Reserved.

       This module is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.

SEE ALSO

       Template, Template::Plugins, Template::Plugin::XML::DOM, Template::Plugin::XML::RSS,
       Template::Plugin::XML::Simple, Template::Plugin::XML::XPath