xsl-list
[Top] [All Lists]

Re: identity transform exclude pis and comments

2003-06-23 06:27:44

    <xsl:template match="node()|@*">
       <xsl:copy><xsl:apply-templates/></xsl:copy>
    </xsl:template>
    
    I can do it with an xsl:if inside, but is there anything more elegant than 
    this:
    
    <xsl:template match="node()|@*">
       <xsl:if test="not(self::processing-instruction() or self::comment()">
         <xsl:copy><xsl:apply-templates/></xsl:copy>
       </xsl:if>
    </xsl:template>


change node() (which matches comments and pis) to * (which doesnt)

However more seriously, as you have it you are removing attributes:
   <xsl:copy><xsl:apply-templates/></xsl:copy>

you need to explictly appy templates to attributes (as well as children)
    <xsl:apply-templates select="*|@*"/>
 or copy the attributes before applying templates
   <xsl:copy><xsl:copy-of select="@*/><xsl:apply-templates/></xsl:copy>
David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

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