[xsl] Beginning an XPath expression with a function call?

Subject: [xsl] Beginning an XPath expression with a function call?
From: "Monier, Yves" <Yves.Monier@xxxxxxxxxxxxxx>
Date: Fri, 7 Mar 2003 17:45:37 +0100
Hello,

Given an XPath expression (for example //foo/foo2) that works for a given
xml, I would like to use the substring-before function, to keep only the
characters in //foo/foo2 before '-'.
The XPath would then become substring-before(//foo/foo2, '-')

It seems that both XPath 1.0 specs, MSXML 4, Saxon 7.4 and XalanJ 2.5 refuse
such construction (e.g. having a function call as root of an XPath
expression). Note that it works with Xalan C++ 1.4. Should it, or not,
regarding the specs?

Do you know if there is a simple "legal" XPath-only-based solution to
achieve the same result?

Many thanks,

Yves

PS:
For MSXML 4 I use an XMLDOMDocument + the selectSingleNode function. 
For Saxon and XalanJ I wrote programs derived from their respective
XPathExample and ApplyXPath samples. 
For XalanC I wrote a program derived from its XPathWrapper sample).

Saxon error is "A sequence of more than one item is not allowed here".
XalanJ error is "Can not convert #STRING to a NodeList!".

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


Current Thread