<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
I'm able to grab the elements that I want to change, but what
do I do if I want to create new elements below the root element?
Just add another template rule:
<xsl:template match="/*">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<new-element/>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
Note that the attributes must be output before any child elements.
Michael Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list