NAME

XML::Xalan::Transformer - Perl interface to XalanTransformer class

SYNOPSIS

use XML::Xalan::Transformer;

my $tr = new XML::Xalan::Transformer;

Compiling a stylesheet file:

my $compiled = $tr->compile_stylesheet_file("foo.xsl");

Compiling a stylesheet string:

my $compiled = $tr->compile_stylesheet_string(<<"XSLT");
<?xml version="1.0"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="doc">
    <out><xsl:value-of select="."/></out>
  </xsl:template>
</xsl:stylesheet>
XSLT

Parsing an XML file:

my $parsed = $tr->parse_file("foo.xml");

Parsing an XML string:

my $parsed = $tr->parse_string(<<"XML");
<?xml version="1.0"?>
<doc>Hello</doc>
XML

Performing a transformation and storing the result into a destination file:

$tr->transform_to_file($src_file, $xsl_file, $dest_file) 
  or die $tr->errstr;

$tr->transform_to_file($parsed, $xsl_file, $dest_file)
  or die $tr->errstr;

$tr->transform_to_file($parsed, $compiled, $dest_file)
  or die $tr->errstr;

Performing a transformation and returning the result:

my $res = $tr->transform_to_data($src_file, $xsl_file);
die $tr->errstr unless defined $res;      # error checking

my $res = $tr->transform_to_data($parsed, $xsl_file);
my $res = $tr->transform_to_data($parsed, $compiled);

DESCRIPTION

Interface to the XalanTransformer class.

METHODS

new()

Constructor, with no argument. Returns an XML::Xalan::Transformer object.

my $tr = new XML::Xalan::Transformer;
$tr->compile_stylesheet_file($xsl_file)

Compiles a stylesheet file and returns an XML::Xalan::CompiledStylesheet object.

my $compiled = $tr->compile_stylesheet("foo.xsl");
$tr->compile_stylesheet_string($xsl_string)

Compiles a stylesheet string and returns an XML::Xalan::CompiledStylesheet object.

my $compiled = $tr->compile_stylesheet_string(<<"XSLT");
<?xml version="1.0"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="doc">
    <out><xsl:value-of select="."/></out>
  </xsl:template>
</xsl:stylesheet>
XSLT
$tr->parse_file($xml_file)

Parses an XML file and returns an XML::Xalan::ParsedSource object.

my $parsed = $tr->parse_file("foo.xml");
$tr->parse_string($xml_string)

Parses an XML string and returns an XML::Xalan::ParsedSource object.

my $parsed = $tr->parse_string(<<"XML");
<?xml version="1.0"?>
<doc>Hello</doc>
XML
$tr->transform_to_file($source, $xsl, $dest)

Transforms a source into a specified file. Returns undef on failure. $source could be an XML::Xalan::ParsedSource object or an XML file. $xsl could be an XML::Xalan::CompiledStylesheet object or an XSL file.

$tr->transform_to_file("foo.xml", "foo.xsl", "bar.xml");
$tr->transform_to_data($source, $xsl)

Transforms a source and returns the result. $source could be an XML::Xalan::ParsedSource object or an XML file. $xsl could be an XML::Xalan::CompiledStylesheet object or an XSL file.

Example:

my $result = $tr->transform_to_data("foo.xml", "foo.xsl");
$tr->transform_to_handler($source, $xsl, *FH, $handler)

Transforms a source and pass the result to a callback handler. $xsl could be an XML::Xalan::CompiledStylesheet object or an XSL file.

If $xsl is an XML::Xalan::CompiledStylesheet object, then $source must be an XML::Xalan::ParsedSource object.

Example:

$out_handler = sub {
    my ($ctx, $mesg);
    print $ctx $mesg;
};
$tr->transform_to_handler(
    $xmlfile, $xslfile, 
    *STDERR, $out_handler);
$tr->errstr()

Returns current error string.

AUTHOR

Edwin Pratomo, edpratomo@cpan.org

SEE ALSO

XML::Xalan(3).