RE: [xsl] is there a String indexOf() function in Xpath?

Subject: RE: [xsl] 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/

Current Thread