Re: [xsl] Doubled output of text nodes

Subject: Re: [xsl] 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


Current Thread