This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: comparing strings
You are right.
There is the second, improved version:
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:param name="start">paca</xsl:param>
<xsl:param name="count">5</xsl:param>
<xsl:variable
name="letters">AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz</xsl:variable>
<xsl:template match="/">
<xsl:call-template name="select">
<xsl:with-param name="str" select="$start"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="select">
<xsl:param name="str"/>
<xsl:variable name="term" select="//term[starts-with(.,$str)][1]"/>
<xsl:choose>
<xsl:when test="$term">
<xsl:apply-templates select="$term"/>
</xsl:when>
<xsl:when test="string-length($str)=1">
<xsl:call-template name="select">
<xsl:with-param name="str"
select="substring(substring-after($letters,$str),1,1)"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$str">
<xsl:call-template name="select">
<xsl:with-param name="str" select="substring($str,1,string-length($str)
- 1)"/>
</xsl:call-template>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="term">
<xsl:param name="pos" select="1"/>
<t><xsl:value-of select="."/></t>
<xsl:if test="$pos < $count">
<xsl:apply-templates select="following-sibling::term[1]">
<xsl:with-param name="pos" select="$pos + 1"/>
</xsl:apply-templates>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Jeni Tennison wrote:
>
> Hi Miloslav,
>
> > <xsl:template match="/">
> > <xsl:apply-templates select="//term[starts-with(.,$start)][1]"/>
> > </xsl:template>
>
> The trouble with this approach is that when the input term is
> something like 'pabulum' (means 'food', apparently), none of the terms
> in the list start with that term. With the above solution, you'll get
> the beginning of the list, but Oliver stated he wanted the terms that
> follow the input term alphabetically (i.e. wants 'pace' etc. to
> show).
>
> Cheers,
>
> Jeni
>
> ---
> Jeni Tennison
> http://www.jenitennison.com/
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
--
******************************************
<firstName> Miloslav </firstName>
<surname> Nic </surname>
<mail> nicmila@idoox.com </mail>
<support> http://www.zvon.org </support>
<zvonMailingList>
http://www.zvon.org/index.php?nav_id=4
</zvonMailingList>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list