Re: [xsl] Seek an XPath expression which concatenates an arbitrary number of strings

Subject: Re: [xsl] 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:12:28 -0000
> Eek! A basic question...
>
>   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...

Why not use simply

string(.)

where the context node is the Document element? Assuming that in the XSLT
transformation there is this directive:

 <xsl:strip-space elements="*"/>

Here is a complete transformation, given this source XML document:

<Document>
    <binary-value>0100</binary-value>
    <binary-value>11</binary-value>
    <binary-value>1010001</binary-value>
</Document>

Transformation:

<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3.org/1999/XSL/Transform";>
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

  <xsl:template match="Document">
    <xsl:sequence select="string(.)"/>
  </xsl:template>
</xsl:stylesheet>


Result:

0100111010001

Thanks,
Dimitre

On Fri, Mar 15, 2024 at 6:53b/AM Roger L Costello costello@xxxxxxxxx <
xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

> Hi Folks,
>
> Eek! A basic question...
>
> 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?
>
> /Roger

Current Thread