Subject: RE: using contains() to search xml doc and matching regardless of case
From: "Jessica Hennessey" <jessica@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 3 Aug 2007 07:39:50 -0400
|
Thank you! It works!
-----Original Message-----
From: Mukul Gandhi [mailto:gandhi.mukul@xxxxxxxxx]
Sent: Thursday, August 02, 2007 11:47 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: using contains() to search xml doc and matching
regardless of case
Please try this:
<xsl:variable name="smallCase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="upperCase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
<xsl:if test="contains(translate(PUBLICDESCRIPTION_STRING, $smallCase,
$upperCase), translate($filter, $smallCase, $upperCase))">
On 8/3/07, Jessica Hennessey <jessica@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
> I am trying to filter my xml document to only output records based on
> a search string. I have the basic search functionality working using
> the xsl:if and the contains() function. Unfortunately for me, this is
> searching for an exact match including case. I need it to be case
> insensitive.
>
> My initial thought was to make everything in my search field lowercase
> and force my incoming parameter to be lowercase. However, I couldn't
> seem to do that from within the contains function. The
> publicdescription field is not displayed on this page, so I can do
> anything I want to it.
>
> Here is my xsl
>
> <?xml version='1.0'?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:param name="order"/>
> <xsl:param name="orderdirection"/>
> <xsl:param name="filter"/>
>
> <xsl:template match="/">
>
>
> <xsl:for-each select="root/job">
> <xsl:sort select="*[name()=$order]" order="{$orderdirection}"/>
> <xsl:if test="contains(PUBLICDESCRIPTION_STRING, $filter)">
> <tr>
> <td><a>
> <xsl:attribute name="href">jobdetail.asp?jobid=<xsl:value-of
> select="JOBPOSTINGID_INT"/></xsl:attribute>
> <xsl:value-of select="TITLE_STRING" /></a></td>
> <td><xsl:value-of select="CITY_STRING"/>, <xsl:value-of
> select="STATE_STRING"/></td>
> <td><xsl:value-of select="EMPLOYMENTTYPE_STRING"/></td>
> </tr>
> </xsl:if>
> </xsl:for-each>
> </xsl:template>
> </xsl:stylesheet>
>
> Thanks to everyone who got me this far!!!I think this is the last
> obstacle.
>
>
>
>
> Jessica Hennessey
> Sunlight Studios - Internet Consulting & Development
> www.sunlightstudios-icd.com
--
Regards,
Mukul Gandhi
|