Subject: Re: [xsl] Enumerating template matches From: Joerg Heinicke <joerg.heinicke@xxxxxx> Date: Fri, 01 Feb 2002 13:40:02 +0100 |
<xsl:template match="B"> <xsl:apply-templates select="C"> <xsl:with-param name="match_number" select="position()"/> </xsl:apply-templates> </xsl:template>
<xsl:template match="C"> <xsl:param name="match_number"/> <xsl:value-of select="$match_number"/> </xsl:template>
<xsl:template match="C"> <xsl:value-of select="count(../preceding-sibling::B) + 1"/> </xsl:template>
Hi list. I'm in the process of transforming some XML into a format edible by my RDBMS. Given the structure:
<A> <B><C/><C/>...<C/></B> <B><C/><C/>...<C/></B> . . </A>
Is there a way I can enumerate the template matches for B and pass that value to the template match for C? Ie. the first matching B element gets a value 1, and passes that on to the template match for C (as a parameter or by having C read it from its parent).
I was thinking something like using
<template match="A"> <!-- Pseudo: declare a "variable" match_number here --> <for-each select="B"> <call-template name="C"><with-param name="match_number"> .. <!-- Pseudo: increase value of match_number by one --> </for-each> </template>
But I know that I cannot reassign the value of a "variable" in XSLT, so I need some other way to "increment" (or keep track of) match_number.
Thanks,
Morten
System Development VIRBUS AG Fon +49(0)341-979-7411 Fax +49(0)341-979-7409 joerg.heinicke@xxxxxxxxx www.virbus.de
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Enumerating template matches, Morten | Thread | Re: [xsl] Enumerating template matc, Morten |
[xsl] Enumerating template matches, Morten | Date | RE: [xsl] SGML to HTML conversion., DPawson |
Month |