|
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 |