Re: [xsl] Doubled output of text nodes

Subject: Re: [xsl] Doubled output of text nodes
From: "Thomas B. Passin" <tpassin@xxxxxxxxxxxx>
Date: Thu, 11 Jul 2002 13:05:15 -0400
This will do it -

<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="/root">
   <root id='{generate-id()}'>
    <xsl:apply-templates />
    </root>
  </xsl:template>

  <xsl:template match="node">
 <node id='{generate-id()}'>
  <xsl:apply-templates/>
 </node>
  </xsl:template>

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

</xsl:stylesheet>

You see the idea - use the identity transformation for everything except the
exact elements that you wish to change.  Those elements you change as you
wish.

Cheers,

Tom P


[Charles Knell]

> I have an application which produces XML docs similar to this one:
> ---------------------------------------------------------
> <?xml version="1.0"?>
> <root>
>   <node>
>     <node>Topic A
>       <node>Subtopic A.1
>         <node>Subtopic A.1.a</node>
>       </node>
>     </node>
>     <node>Topic B</node>
>   </node>
> </root>
> ---------------------------------------------------------
> I wish to use XLT to add unique id's to each node element, but otherwise
> copy the content unchanged to the output. I have worked out this XSLT:
>...


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread