XML::XSLT - A perl module for processing XSLT
use XML::XSLT;
my $xslt = XML::XSLT->new ($xsl, warnings => 1);
$xslt->transform ($xmlfile); print $xslt->toString;
$xslt->dispose();
This module implements the W3C's XSLT specification. The goal is full implementation of this spec, but we have not yet achieved that. However, it already works well. See XML::XSLT Commands for the current status of each command.
XML::XSLT makes use of XML::DOM and LWP::Simple, while XML::DOM uses XML::Parser. Therefore XML::Parser, XML::DOM and LWP::Simple have to be installed properly for XML::XSLT to run.
The stylesheets and the documents may be passed as filenames, file handles regular strings, string references or DOM-trees. Functions that require sources (e.g. new), will accept either a named parameter or simply the argument.
Either of the following are allowed:
my $xslt = XML::XSLT->new($xsl); my $xslt = XML::XSLT->new(Source => $xsl);
In documentation, the named parameter `Source' is always shown, but it is never required.
Returns a new XSLT parser object. Valid flags are:
Gives the XSLT object new XML to process. Returns an XML::DOM object corresponding to the XML.
Gives the XSLT object a new stylesheet to use in processing XML. Returns an XML::DOM object corresponding to the stylesheet. Any arguments present are passed to the XML::DOM::Parser.
Processes the given XML through the stylesheet. Returns a string containg the result. Example:
use XML::XSLT qw(serve);
$xslt = XML::XSLT->new($xsl); print $xslt->serve $xml;
If true, then prepends the appropriate HTTP headers (e.g. Content-Type, Content-Length);
Defaults to true.
If true, then the result contains the appropriate <?xml?> header.
Defaults to true.
The version of the XML.
Defaults to 1.0.
dispose
method on each XML::DOM object.
Attribute 'select' is supported to the same extent as xsl:value-of supports path selections.
Not supported yet: - attribute 'mode' - xsl:sort and xsl:with-param in content
Adds an attribute named to the value of the attribute 'name' and as value the stringified content-template.
Not supported yet: - attribute 'namespace'
Takes attribute 'name' which selects xsl:template's by name.
Weak support: - xsl:with-param (select attrib not supported)
Not supported yet: - xsl:sort
Attribute 'select' functions as well as with xsl:value-of
Not supported yet: - xsl:sort in content
Attribute 'name' and 'match' are supported to minor extend. ('name' must match exactly and 'match' must match with full path or no path)
Not supported yet: - attributes 'priority' and 'mode'
Inserts attribute or element values. Limited support:
<xsl:value-of select="."/>
<xsl:value-of select="/root-elem"/>
<xsl:value-of select="elem"/>
<xsl:value-of select="//elem"/>
<xsl:value-of select="elem[n]"/>
<xsl:value-of select="//elem[n]"/>
<xsl:value-of select="@attr"/>
<xsl:value-of select="text()"/>
<xsl:value-of select="processing-instruction()"/>
<xsl:value-of select="comment()"/>
and combinations of these.
Not supported yet: - attribute 'disable-output-escaping'
Only inside xsl:choose. Limited test support:
<xsl:when test="@attr='value'">
<xsl:when test="elem='value'">
<xsl:when test="path/[@attr='value']">
<xsl:when test="path/[elem='value']">
<xsl:when test="path">
path is supported to the same extend as with xsl:value-of
General information, bug reporting tools, the latest version, mailing lists, etc. can be found at the XML::XSLT homepage:
http://xmlxslt.sourceforge.net/
Methods and interfaces from previous versions that are not documented in this
version are deprecated. Each of these deprecations can still be used
but will produce a warning when the deprecation is first used. You
can use the old interfaces without warnings by passing new()
the
flag use_deprecated
. Example:
$parser = XML::XSLT->new($xsl, "FILE", use_deprecated => 1);
The deprecated methods will disappear by the time a 1.0 release is made.
The deprecated methods are :
Source
argument to new() and transform instead.
Yes.
Geert Josten and Egon Willighagen developed and maintained XML::XSLT up to version 0.22. At that point, Mark Hershberger started moving the project to Sourceforge and began working on it with Bron Gondwana.
Copyright (c) 1999 Geert Josten & Egon Willighagen. All Rights Reserverd. This module is free software, and may be distributed under the same terms and conditions as Perl.
Geert Josten <gjosten@sci.kun.nl>
Egon Willighagen <egonw@sci.kun.nl>
Mark A. Hershberger <mah@everybody.org>
Bron Gondwana <perlcode@brong.net>
Jonathan Stowe <jns@gellyfish.com>