[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Trouble understanding the Test expression in xsl:if
Subject: Re: [xsl] Trouble understanding the Test expression in xsl:if From: Liam Quin <liam@xxxxxx> Date: Wed, 27 May 2009 19:56:18 -0400 |
On Wed, May 27, 2009 at 02:28:05PM -0500, Keith Gilbert wrote: > My shortened XML data: > <category> > <category_name>apples</category_name> > <product>red delicious</product> > </category> > <category_name>oranges</category_name> > <product>sunkist</product> > </category> > My simplified XSLT: > > <xsl:template match="category"> > <xsl:apply=templates/> > </xsl:template> > > <xsl:template match="category_name"> > <xsl:if test="category_name = apples"> > <xsl:call-template name=apple_template/> > </xsl:if> > </xsl:template> I think you'd do better by saying what you're trying to do here. (1) you want the aples category to use a different template: <xsl:template match="category[category_name = 'apples'"> something different </xsl:template> (2) you want to do something additional to the category name when there are apples <xsl:template match="category_name"> <xsl:if test=". = 'apples'"> <!--* call a template to display the category name: *--> <xsl:call-template name="apple-template" /> </xsl:if> </xsl:template> Your "if" doesn't work because it's inside a template that is matching the category_name element, and it's looking for a category_name element inside that, whereas in fact there's just a string. Most likely you want my suggestion (1), to treat the whole category element differently if its name is "apples". Liam -- Liam Quin, W3C XML Activity Lead, http://www.w3.org/People/Quin/ http://www.holoweb.net/~liam/ * http://www.fromoldbooks.org/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Trouble understanding the, Wendell Piez | Thread | [xsl] XSLT workflow: ODF <-> XPP, Martynas Jusevicius |
[xsl] XSLT workflow: ODF <-> XPP, Martynas Jusevicius | Date | Re: [xsl] XSLT workflow: ODF <-> XP, Matthew L. Avizinis |
Month |
Keywords