[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: filter based on parameter, not getting it.
okay, here is my attempt...not working...very frustrating. my error: Can not convert #STRING to a NodeList! <xsl:param name="filterparam"/> <!-- try to take the if condition out of the test template --> <xsl:template match="/"> <xsl:choose> <xsl:when test="string-length($filterparam) = 0"> <xsl:call-template name="test"> <!-- trying to call the test template with no filter --> <xsl:with-param name="filter" select="//person"></xsl:with-param> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="test"> <!-- trying to call the test template with the filterparam as the filter --> <xsl:with-param name="filter" select="//person[cat = $filterparam]"></xsl:with-param> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="test" match="/"> <xsl:param name="filter"/> <xsl:variable name="filter" select="$filter"/> <table> <xsl:for-each select="$filter"> <tr> <td><xsl:value-of select="cat"/></td> <td><xsl:value-of select="dog"/></td> <td><xsl:value-of select="fish"/></td> </tr> </xsl:for-each> </table> </xsl:template> -----Original Message----- From: Passin,Thomas B. (Tom) [mailto:tpassin@xxxxxxxxxxxx] Sent: Friday, September 20, 2002 3:27 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: RE: filter based on parameter, not getting it. [Carter, Will] > This code doesn't work: > <table> > <xsl:for-each select="$filter"> <!--=============================================== Here is the problem. The variable is out of scope - it is only in scope in your xsl:when or xsl:otherwise element. Therfore the variable does not exist for the code below. ==================================================--> > <tr> > <td><xsl:value-of select="cat"/></td> > <td><xsl:value-of select="dog"/></td> > <td><xsl:value-of select="fish"/></td> > </tr> > </xsl:for-each> > </table> > --------------------------------------------------------- Restructure your stylesheet so that you call a named template (or apply-templates) to create the table cells, and pass in the $filter variable as a parameter to the template. Cheers, Tom P XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|