[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: RE: XPath expression to perform 'keyword' query
> I still have one problem. I can't get it to search on more > than one keyword. > I think this is because I'm using the contains() function like this: > > contains({element content}, $keywords) > > Any ideas? You could do contains({element content}, $keyword1) and contains({element content}, $keyword2) but of course that would only work if the number of keywords was fixed in advance (unlikely). Otherwise you'd probably have to define a recursive template to parse $keyword. Something like: (untested) <xsl:template name="contains-keywords"> <xsl:param name="str" select="''" /> <xsl:param name="keywords" select="''" /> <!-- Return '1' if the given string contains all keywords (space-separated strings); otherwise '0'. --> <xsl:choose> <xsl:when test="$str = ''">1</xsl:when> <xsl:otherwise> <xsl:variable name="first-keyword" select="substring-before($keywords, ' ')" /> <xsl:choose> <xsl:when test="contains($str, $first-keyword)"> <xsl:call-template name="contains-keywords"> <xsl:with-param name="str" select="$str" /> <xsl:with-param name="keywords" select="substring-after($keywords, ' ')" /> </xsl:call-template> </xsl:when> <xsl:otherwise>0</xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:template> Lars 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
|