xsl-list
[Top] [All Lists]

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

2005-07-28 15:24:58
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/



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--