A
Abro Gaticus
Being extremely new to XML::LibXSLT and XML/XSL in general I have what
I am assuming is a very newb question.
I found an old post (dated 2001) that showed where to find ppm packages
for libXSLT since I am trying this out using activestate on XP.
C:\> ppm
ppm> set repository RK http://theoryx5.uwinnipeg.ca/ppmpackages/
ppm> set save
ppm> install XML::LibXML
ppm> install XML::LibXSLT
following these explicit instructions (much appreciated) I was able to
install the packages and begin scripting. The ppm packages are great
as they even download the dll's that XML::LibXSLT depends on.
I created a simple XML file, a simple XSL file, and a simple perl
script that uses XML::LibXSLT to perform the transformation.
Everything seems to work correctly except that in the result document
none of the element tags are output, only their values. <xls
utput
method="xml"/> is ignored. I find this strange as I have read
documentation that 'xml' should be the default output method anyway.
Perhaps someone can suggest what I am doing incorrectly. Code below:
Thanks in advance.
--------------------------------
test.xml:
<?xml version="1.0" ?>
<entry>
<major>
pain in the grass
</major>
<stats>
<a> 11 </a>
<b> 21 </b>
<c> 31 </c>
<d> 41 </d>
<e> 51 </e>
</stats>
</entry>
-------------------------------
template.xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl
utput method="xml"/>
<!-- first attempt -->
<xsl:template match="stats">
<xsl:text> Stats: </xsl:text>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
---------------------------------
result.xml
<?xml version="1.0"?>
pain in the grass
Stats:
11
21
31
41
51
---------------------------
xslTest.pl
use strict;
use XML::LibXSLT;
use XML::LibXML;
my $parser = XML::LibXML->new();
my $xslt = XML::LibXSLT->new();
my $source = $parser->parse_file('test.xml');
my $style_doc = $parser->parse_file('template.xsl');
my $stylesheet = $xslt->parse_stylesheet($style_doc);
my $results = $stylesheet->transform($source);
$stylesheet->output_file($results,'result.xml');
I am assuming is a very newb question.
I found an old post (dated 2001) that showed where to find ppm packages
for libXSLT since I am trying this out using activestate on XP.
C:\> ppm
ppm> set repository RK http://theoryx5.uwinnipeg.ca/ppmpackages/
ppm> set save
ppm> install XML::LibXML
ppm> install XML::LibXSLT
following these explicit instructions (much appreciated) I was able to
install the packages and begin scripting. The ppm packages are great
as they even download the dll's that XML::LibXSLT depends on.
I created a simple XML file, a simple XSL file, and a simple perl
script that uses XML::LibXSLT to perform the transformation.
Everything seems to work correctly except that in the result document
none of the element tags are output, only their values. <xls
method="xml"/> is ignored. I find this strange as I have read
documentation that 'xml' should be the default output method anyway.
Perhaps someone can suggest what I am doing incorrectly. Code below:
Thanks in advance.
--------------------------------
test.xml:
<?xml version="1.0" ?>
<entry>
<major>
pain in the grass
</major>
<stats>
<a> 11 </a>
<b> 21 </b>
<c> 31 </c>
<d> 41 </d>
<e> 51 </e>
</stats>
</entry>
-------------------------------
template.xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl
<!-- first attempt -->
<xsl:template match="stats">
<xsl:text> Stats: </xsl:text>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
---------------------------------
result.xml
<?xml version="1.0"?>
pain in the grass
Stats:
11
21
31
41
51
---------------------------
xslTest.pl
use strict;
use XML::LibXSLT;
use XML::LibXML;
my $parser = XML::LibXML->new();
my $xslt = XML::LibXSLT->new();
my $source = $parser->parse_file('test.xml');
my $style_doc = $parser->parse_file('template.xsl');
my $stylesheet = $xslt->parse_stylesheet($style_doc);
my $results = $stylesheet->transform($source);
$stylesheet->output_file($results,'result.xml');