Subject: Re: [xsl] Re: Seek an XPath expression which concatenates an arbitrary number of strings From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 15 Mar 2024 16:23:42 -0000 |
> Then, per the "composable language" capability I will embed that for-loop inside the call to concat: > > concat(for $i in //binary-value return $i) > > But that doesn't work. Is XPath truly a composable language? If so, why doesn't my XPath work? This is because of how fn:concat is defined in XPath 3.1 (and prior versions) - a call to it must specify at least 2 arguments, each with cardinality of 1. In XPath 4.0 this definition is extended and the following expression is evaluated successfully: concat(for $i in 1 to 3 return $i) and produces the expected result using BaseX v.11: 123 Thanks, Dimitre On Fri, Mar 15, 2024 at 9:11b/AM Roger L Costello costello@xxxxxxxxx < xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > Hi Folks, > > Thank you for your replies. The string-join solution works fine. > > But, but, but, ... > > Why doesn't my XPath work: concat(for $i in //binary-value return $i) > > I thought that I was simply employing XPath's "composable language" > capability. > > The XPath specification says this: > > XPath is a composable language > > What does that mean? > > It means that every operator and language construct allows any XPath > expression to appear as its operand. > > So, what that means to me is that I can call the concat function: > > concat(...) > > and then inside the parentheses the entire XPath functionality is > available to me. Right? > > Well, here is a fine XPath expression: > > for $i in //binary-value return $i > > Then, per the "composable language" capability I will embed that for-loop > inside the call to concat: > > concat(for $i in //binary-value return $i) > > But that doesn't work. Is XPath truly a composable language? If so, why > doesn't my XPath work? > > /Roger > > > -- Cheers, Dimitre Novatchev --------------------------------------- Truly great madness cannot be achieved without significant intelligence. --------------------------------------- To invent, you need a good imagination and a pile of junk ------------------------------------- Never fight an inanimate object ------------------------------------- To avoid situations in which you might make mistakes may be the biggest mistake of all ------------------------------------ Quality means doing it right when no one is looking. ------------------------------------- You've achieved success in your field when you don't know whether what you're doing is work or play ------------------------------------- To achieve the impossible dream, try going to sleep. ------------------------------------- Facts do not cease to exist because they are ignored. ------------------------------------- Typing monkeys will write all Shakespeare's works in 200yrs.Will they write all patents, too? :) ------------------------------------- Sanity is madness put to good use. ------------------------------------- I finally figured out the only reason to be alive is to enjoy it.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: Seek an XPath express, Martin Honnen martin | Thread | Re: [xsl] Re: Seek an XPath express, Martin Honnen martin |
Re: [xsl] Re: Seek an XPath express, Martin Honnen martin | Date | Re: [xsl] Re: Seek an XPath express, Martin Honnen martin |
Month |