[xsl] multiple transformations (pipelining) in one stylesheet

Subject: [xsl] multiple transformations (pipelining) in one stylesheet
From: Oliver Lietz <list@xxxxxxxxxxxxxx>
Date: Fri, 19 Oct 2007 17:08:10 +0200
Hello all,

this is my xml file:
<?xml version="1.0" encoding="utf-8"?>
<file>
  <content>
    <title>Lorem ipsum</title>
    <para><acronym text="Lorem ipsum"/> dolor sit amet, ...</para>
  </content>
</file>

and here my xsl file:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes"/>

  <xsl:template match="@*|node()">
      <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
      </xsl:copy>
  </xsl:template>

  <xsl:template match="acronym">
    <xsl:value-of select="@text"/>
  </xsl:template>

  <xsl:template match="/">
    <p>
      <xsl:value-of select="/file/content/para"/>
    </p>
  </xsl:template>

</xsl:stylesheet>

The second and third template alone with the first work as I expect but the 
result should look like this:

<p>Lorem ipsum dolor sit amet, ...</p>

So what's the best way to use the result of the first transformation (replace 
acronyms) as source for the second (make html)?
I searched the web and this list and tried different approaches but didn't 
succeed so far. Any hints? (using Saxon-B 8.9/j)

tia,
O.

Current Thread