Specific template for the first element.

Posted by Kalinin on Stack Overflow See other posts from Stack Overflow or by Kalinin
Published on 2010-05-19T07:23:18Z Indexed on 2010/05/19 7:30 UTC
Read the original article Hit count: 198

Filed under:
|
|

I have a template:

<xsl:template match="paragraph">
    ...
</xsl:template>

I call it:

<xsl:apply-templates select="paragraph"/>

For the first element I need to do:

<xsl:template match="paragraph[1]">
    ...
    <xsl:apply-templates select="."/><!-- I understand that this does not work -->
    ...
</xsl:template>

How to call <xsl:apply-templates select="paragraph"/> (for the first element paragraph) from the template <xsl:template match="paragraph[1]">?

So far that I have something like a loop.


I solve this problem so (but I do not like it):

<xsl:for-each select="paragraph">
    <xsl:choose>
        <xsl:when test="position() = 1">
            ...
            <xsl:apply-templates select="."/>
            ...
        </xsl:when>
        <xsl:otherwise>
            <xsl:apply-templates select="."/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:for-each>

© Stack Overflow or respective owner

Related posts about xslt

Related posts about improvement