|
Subject: Re: [xsl] Seek an XPath expression which concatenates an arbitrary number of strings From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 15 Mar 2024 14:11:51 -0000 |
On 15/03/2024 14:53, Roger L Costello costello@xxxxxxxxx wrote:
> I have an XML document containing an arbitrary number of <binary-value>
elements:
>
> <Document>
> <binary-value>0100</binary-value>
> <binary-value>11</binary-value>
> <binary-value>1010001</binary-value>
> ...
> </Document>
>
> I want an XPath expression which concatenates the binary values into one
long string:
>
> 0100111010001...
>
> I thought this would work:
>
> concat(for $i in //binary-value return $i)
>
> but that gives an error, "Cannot find a 1-argument function named concat"
>
> What is the correct XPath, please?
>
string-join was already suggested but you could also pretend to be
sophisticated in higher-order functions and XPath 3.1 operators like ||
doing e.g.
B B B B B B B B B B fold-left(//binary-value, '', function($a, $b) { $a ||
$b })
I wonder whether XPath 4 allows you to use concat in a more
sophisticated way then predefining the number of args with e.g.
B B B B B B B apply(concat(?,?,?), array { //binary-value })
would work for your posted input sample.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Seek an XPath expression , Piez, Wendell A. (Fe | Thread | Re: [xsl] Seek an XPath expression , Martin Honnen martin |
| Re: [xsl] Seek an XPath expression , David Carlisle d.p.c | Date | Re: [xsl] Seek an XPath expression , Martin Honnen martin |
| Month |