Template::Plugin::XML::DOM 2.16 review
DownloadTemplate::Plugin::XML::DOM is a plugin interface to XML::DOM. SYNOPSIS # load plugin [% USE dom = XML.DOM %] #
|
|
Template::Plugin::XML::DOM is a plugin interface to XML::DOM.
SYNOPSIS
# load plugin
[% USE dom = XML.DOM %]
# also provide XML::Parser options
[% USE dom = XML.DOM(ProtocolEncoding = 'ISO-8859-1') %]
# parse an XML file
[% doc = dom.parse(filename) %]
[% doc = dom.parse(file = filename) %]
# parse XML text
[% doc = dom.parse(xmltext) %]
[% doc = dom.parse(text = xmltext) %]
# call any XML::DOM methods on document/element nodes
[% FOREACH node = doc.getElementsByTagName('report') %]
* [% node.getAttribute('title') %] # or [% node.title %]
[% END %]
# define VIEW to present node(s)
[% VIEW report notfound='xmlstring' %]
# handler block for a ... element
[% BLOCK report %]
[% item.content(view) %]
[% END %]
# handler block for a ... element
[% BLOCK section %]
< h1 >[% item.title %]< /h1 >
[% item.content(view) %]
[% END %]
# default template block converts item to string
[% BLOCK xmlstring; item.toString; END %]
# block to generate simple text
[% BLOCK text; item; END %]
[% END %]
# now present node (and children) via view
[% report.print(node) %]
# or print node content via view
[% node.content(report) %]
# following methods are soon to be deprecated in favour of views
[% node.toTemplate %]
[% node.childrenToTemplate %]
This is a Template Toolkit plugin interfacing to the XML::DOM module. The plugin loads the XML::DOM module and creates an XML::DOM::Parser object which is stored internally. The parse() method can then be called on the plugin to parse an XML stream into a DOM document.
[% USE dom = XML.DOM %]
[% doc = dom.parse('/tmp/myxmlfile') %]
The XML::DOM plugin object (i.e. 'dom' in these examples) acts as a sentinel for the documents it creates ('doc' and any others). When the plugin object goes out of scope at the end of the current template, it will automatically call dispose() on any documents that it has created. Note that if you dispose of the the plugin object before the end of the block (i.e. by assigning a new value to the 'dom' variable) then the documents will also be disposed at that point and should not be used thereafter.
[% USE dom = XML.DOM %]
[% doc = dom.parse('/tmp/myfile') %]
[% dom = 'new value' %] # releases XML.DOM plugin and calls
# dispose() on 'doc', so don't use it!
The plugin constructor will also accept configuration options destined for the XML::Parser object:
[% USE dom = XML.DOM(ProtocolEncoding = 'ISO-8859-1') %]
Requirements:
Perl
Template::Plugin::XML::DOM 2.16 keywords