xsl-list
[Top] [All Lists]

RE: xsl search engine

2004-03-10 00:32:41
Hi,

No, you have to use an extension or use translate($text, 
'ABCDEFG...',
'abcdefg...').

Yes but than bla would become BLA and while searchin for Bla, 
it won't find
it...
I would "simply" like BLA, bla, Bla, bLa, blA, bLA, etc. would all be
"equivalent".

Translate both strings to lowercase.
 
A recursive template. Tokenize the query string, and test each token
individually.

I don't really see how to write this recursive template, can 
you explain
more.
I think the difficult thing will be to separate the string into many
substrings according to the "spaces" (n spaces ==> n+1 words)

<template name="tokenizer">
  <param name="text" select="normalize-space($string)"/>
  <if test="$text">
    <apply-templates select="THEME[contains(@label,substring-before($text, ' 
'))]"/>
    <call-templates name="tokenizer">
     <with-param name="text" select="substring-after($text, ' ')"/>
    </>
  </>
</>

goes throught each token in $string and processes each THEME whose label 
attribute contains the token.

      > PS : in my project, i generate the whole Path
      > "THEME[contains(@label,$string)]" with asp and this is the
      > string parameter
      > i send to the xsl and then i do : <xsl:for-each
      > select="dyn:evaluate(.,$string)"> (evaluate is a 
function from the dyn
      > namespace which calculate the xPath expression. Maybe 
i could make an
      > traitment direct in the aps page to do what i want ?

Umm... why don't you just use the expression
THEME[contains(@label,$string)] and pass query string in with 
$string? I
must >>be missing something here; wish I could say "Well, I 
am psychic, you
know" like she can.

Oups, yes there were an error in what I wrote. I actually generate
"THEME[contains(@label,"what_the_user_wrote")]" as string 
which is send as
$string parameter to the xsl. I do it because the user may 
also want to
search among only THEMES whose topic attribute is 
"Mathematics" for instance
or maybe all of them. The string I generate is than rather :
              THEME[contains(@label,"what_the_user_wrote") 
and @topic="Mathematic"]
or simply     THEME[contains(@label,"what_the_user_wrote")]

I must generate this before sending it to xsl because if I wrote :

<xsl:for-each select="THEME[contains(@label,$string)] and 
@topic=$string2">

then for $string2="" (nothing ==> that means EVERY topics), 
the xsl would
not match any THEME...

Why not use xsl:choose to process differently when $string2 is empty?

Cheers,

Jarno - Thou Shalt Not: Headhunter (Front 242 cover)... hilarious :D

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



<Prev in Thread] Current Thread [Next in Thread>