Subject: RE: [xsl] Beginning an XPath expression with a function call? From: "Michael Kay" <mhk@xxxxxxxxx> Date: Fri, 7 Mar 2003 18:04:53 -0000 |
The expression substring-before(//foo/foo2, '-') is a valid XPath 1.0 expression. In XPath 2.0 it is valid only if //foo/foo2 returns a single node. The Saxon error message implies that it is selecting more than one node. If you want to select only the first node, use substring-before((//foo/foo2)[1], '-'). If you want to process all the nodes (in XPath 2.0) use for $x in //foo/foo2 return substring-before($x, '-') Michael Kay Software AG home: Michael.H.Kay@xxxxxxxxxxxx work: Michael.Kay@xxxxxxxxxxxxxx > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of > Monier, Yves > Sent: 07 March 2003 16:46 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Beginning an XPath expression with a function call? > > > 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 > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Beginning an XPath expres, Oleg Tkachenko | Thread | [xsl] First node processed repeated, Imrran Wahid |
RE: [xsl] Aberrant Alphabetizing., Michael Kay | Date | Re: [xsl] First node processed repe, Imrran Wahid |
Month |