Subject: Re: Doubled output of text nodes
From: "Marrow" <marrow@xxxxxxxxxxxxxx>
Date: Thu, 11 Jul 2002 17:52:05 +0100
|
Hi Charles,
The text nodes are being output twice because you have...
<xsl:value-of select="text()[position()=1]" />
<xsl:apply-templates />
(the apply templates will also select the text() nodes - and the built-in
template rule will kick in for them and copy them too).
To just add id attributes the following XSL would be easier...
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:attribute name="id">
<xsl:value-of select="generate-id()"/>
</xsl:attribute>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="comment()|processing-instruction()">
<xsl:copy/>
</xsl:template>
</xsl:stylesheet>
HTH
Marrow
http://www.marrowsoft.com
http://www.topxml.com/Xselerator
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|