Subject: Re: [xsl] Processing 2 times the same node without copying content... From: Xmlizer <xmlizer+xsllist@xxxxxxxxx> Date: Fri, 8 Aug 2008 14:33:20 +0200 |
Have you tried this instead ? <xsl:template match="*[@id]"> <a name="{@id}"/> <xsl:copy> <xsl:apply-templates select="@*[not(self::id)]| node()"/> </xsl:copy> </xsl:template> Xmlizer On Fri, Aug 8, 2008 at 1:56 PM, Adam Komisarek <akakus@xxxxxxxxx> wrote: > > Hello! > > I have following problem: I need to add anchor support for quite big > stylesheets which produce HTML output. So I want to copy @id / add <a > name="{@id}"> to the result tree. But the problem is I can't do it in > this way: > > <!-- HTML ANCHORS --> > <xsl:template match="*[@id]" priority="2"> > <a name="{@id}"/> > > <xsl:variable name="content"> > <xsl:copy> > <xsl:apply-templates mode="anchor" select="@*|node()"/> > </xsl:copy> > </xsl:variable> > > <xsl:apply-templates select="xalan:nodeset($content)"/> > </xsl:template> > > <xsl:template match="node()" mode="anchor"> > <xsl:copy-of select="."/> > </xsl:template> > > <xsl:template match="@*" mode="anchor"> > <xsl:choose> > <xsl:when test="name()='id'"> > </xsl:when> > <xsl:otherwise> > <xsl:copy> > <xsl:apply-templates select="."/> > </xsl:copy> > </xsl:otherwise> > </xsl:choose> > </xsl:template> > > Because as far as I know xalan:nodeset changes input tree and that > stylesheet involve counting on preceding elements (to calculate how > many page breaks appeared). So I can't do that way :(. > > Is there anyway to apply-templates on self node and ommiting some > attributes? It would be thing I am looking for... Thanks for help! > > Regards, > Adam Komisarek
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Processing 2 times the sa, Michael Kay | Thread | [xsl] Forgive the noob, Bordeman, Chris |
RE: [xsl] Processing 2 times the sa, Michael Kay | Date | [xsl] Forgive the noob, Bordeman, Chris |
Month |