Subject: RE: is there a String indexOf() function in Xpath?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 28 Jul 2005 23:24:58 +0100
|
> Ah, one quick warning that I forgot to mention earlier although it was
> sitting at the back of my mind..
>
> Substring is
> substring(intialString,starting position, length of desired
> substring) not
> substring(intialString,starting position, ending position)
>
> So if you go the XSLT 2.0 function writing route that Michael
> suggested, you'll have to write two functions.
You don't need substring() to implement index-of(). To expand DC's response,
here it is:
<xsl:function name="eg:index-of" as="xs:integer">
<xsl:param name="a1" as="xs:string?"/>
<xsl:param name="a2" as="xs:string?"/>
<xsl:sequence select="string-length(substring-before($a1, $a2)"/>
</xsl:function>
and perhaps:
<xsl:function name="eg:index-of" as="xs:integer">
<xsl:param name="a1" as="xs:string?"/>
<xsl:param name="a2" as="xs:string?"/>
<xsl:param name="collation" as="xs:string"/>
<xsl:sequence select="string-length(substring-before($a1, $a2,
$collation)"/>
</xsl:function>
Michael Kay
http://www.saxonica.com/
|