How do I write a template match so that all the output
XML looks exactly like the input XML. I do not know
how to recursively use apply-templates. Can someone help?
A template which I've often found useful is:
<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
version='1.0'>
<xsl:output encoding='UTF-8' method='xml'/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:apply-templates select="node()" />
</xsl:copy>
</xsl:template>
<!-- ... -->
</xsl:stylesheet>
This recursively copies the input XML to the output, but also allows you
to add new xsl:template matches to override certain copies. Basically, as
long as you make sure to use xsl:apply-templates instead of xsl:copy-of,
you know you can override handling of select elements at will.
Jim
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
James A. Robinson
jim(_dot_)robinson(_at_)stanford(_dot_)edu
Stanford University HighWire Press http://highwire.stanford.edu/
650-723-7294 (W) 650-725-9335 (F)