[xsl] Re: XPath predicate test and parameter problem

Subject: [xsl] Re: XPath predicate test and parameter problem
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Tue, 30 Sep 2003 19:20:41 +0200
> Why does this stylesheet produce the output "Milwaukee",
> <?xml version="1.0" encoding="UTF-8" ?>
> <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
>  <xsl:output method="xml" indent="yes" encoding="UTF-8" />
>
>  <xsl:template match="/">
>   <xsl:apply-templates select="rowset">
>    <xsl:with-param name="st" select="'WI'" />
>   </xsl:apply-templates>
>  </xsl:template>
>
>  <xsl:template match="rowset">
>   <xsl:param name="st" />
>   <xsl:value-of select="row[state='WI']/city" />
>  </xsl:template>
>
> </xsl:stylesheet>
>
> and this one, only '<?xml version="1.0" encoding="UTF-8" ?>',
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
>  <xsl:output method="xml" indent="yes" encoding="UTF-8" />
>
>  <xsl:template match="/">
>   <xsl:apply-templates select="rowset">
>    <xsl:with-param name="st" select="'WI'" />
>   </xsl:apply-templates>
>  </xsl:template>
>
>  <xsl:template match="rowset">
>   <xsl:param name="st" />
>   <xsl:value-of select="row[state='$st']/city" />
>  </xsl:template>
>
> </xsl:stylesheet>
>
> To save you the trouble of minutely examining the two, the difference is
that in the one that doesn't work the way I think it should, I use the >
value of the parameter to test the content of the "state" element, where in
the one that produces the output I want, I use the literal string
> 'WI'.

No, in the second template you are comparing state to the string '$st':

>   <xsl:value-of select="row[state='$st']/city" />

and there is no "state" element in your source.xml with string value "$st".

Must be:

   <xsl:value-of select="row[state=$st]/city" />


=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL







 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread