Re: [xsl] concatenation of sibling names

Subject: Re: [xsl] concatenation of sibling names
From: Peter Davis <pdavis152@xxxxxxxxx>
Date: Tue, 12 Feb 2002 10:13:14 -0800
You can use the previous-sibling and following-sibling axes in succession to 
access all of the element's siblings.  Then use the name() function (or 
alternately the local-name() function if you want to strip off namespace 
prefixes) to get the element's name.  You should play around with the 
<xsl:text> elements if they don't suit your desired output.

<xsl:template match="db/*">
    <xsl:for-each select="previous-sibling::*">
        <xsl:value-of select="name()"/>
        <xsl:text> </xsl:text>
    </xsl:for-each>
    <xsl:for-each select="following-sibling::*">
        <xsl:value-of select="name()"/>
        <xsl:text> </xsl:text>
    </xsl:for-each>
</xsl:template>

On Tuesday 12 February 2002 08:09, Saverio Perugini wrote:
> Hello,
>
> Is it possible to concatenate the names of all siblings of a
> node into a string for later use?
>
> e.g., in the following data,
>
> <db>
>    <coffee>...</coffee>
>    <tea>...</tea>
>    <milk>...</milk>
>    <sugar>...</sugar>
>    <salt>...</salt>
>    <pepper>...</pepper>
> </db>
>
> if the processor was working on the node "coffee" -- construct
> the following string: "tea milk sugar salt pepper" or likewise if the
> processor was working on the node "sugar" -- construct
> the following string: "coffee tea milk salt pepper".
>
> Specifically, can I use a foreach construct, loop through all siblings
> to tally up/concat() the name() during each iteration and store the result
> in a parameter for use later in the stylesheet?
>
> Thank You.
>
> Saverio Perugini
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

-- 
Peter Davis
Two percent of zero is almost nothing.

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


Current Thread