Subject: Re: [xsl] Choosing based on current node From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx> Date: Mon, 12 Feb 2007 22:05:26 +0530 |
<xsl:for-each select="A|B|C"> <xsl:choose> <xsl:when test="self::A"> <xsl:call-template name="do-A"/> </xsl:when> <xsl:when test="self::B"> <xsl:call-template name="do-B"/> </xsl:when> <xsl:otherwise> <xsl:call-template name="do-C"/> </xsl:otherwise> </xsl:choose> </xsl:for-each>
I'm amazed at how patient this list is with newbie questions; I hope this question doesn't try that patience too much. I'm processing a document that has <A> or <B> or <C> elements in it. I need to preserve their order in the output, but do something drastically different for each. It seems like the following ought to work, but, instead, the otherwise branch is always performed, regardless of whether the element is A, B, or C. (The for-each is working fine, as it correctly skips over any elements other than A, B, or C.)
<xsl:for-each select="A|B|C"> <xsl:choose> <xsl:when test=".=A"> <xsl:call-template name="do-A"/> </xsl:when> <xsl:when test=".=B"> <xsl:call-template name="do-B"/> </xsl:when> <xsl:otherwise> <xsl:call-template name="do-C"/> </xsl:otherwise> </xsl:choose> </xsl:for-each>
Thanks in advance,
Stephen
-- Regards, Mukul Gandhi
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Choosing based on current, Abel Braaksma | Thread | Re: [xsl] Choosing based on current, Abel Braaksma |
Re: [xsl] Choosing based on current, Abel Braaksma | Date | Re: [xsl] Choosing based on current, Abel Braaksma |
Month |