Re: concatenation of sibling names
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
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format