Re: [xsl] Joining sibling elements

Subject: Re: [xsl] Joining sibling elements
From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx>
Date: Thu, 11 Aug 2005 12:07:46 +0530
Given this XML -
<?xml version="1.0" encoding="UTF-8"?>
  <a><b>this</b><b>this 1</b><b>this 2</b></a>
  <a><b>this 3</b></a>
  <a><b>this 4</b><b>this 5</b></a>
  <a><b>this 6</b><b>this 7</b><b>this 8</b><b>this 9</b></a>
  <a><b>this 10</b><b>this 11</b><b>this 12</b><b>this 13</b></a>

This XSLT stylesheet -
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="";
version="1.0" xmlns:common="";

<xsl:output method="xml" indent="yes"/>
<xsl:template match="/root">
      <xsl:apply-templates select="a"/>

<xsl:template match="a">
     <xsl:variable name="rtf"><xsl:for-each select="b"><xsl:value-of
select="."/><xsl:text> </xsl:text></xsl:for-each></xsl:variable>
     <xsl:value-of select="common:node-set($rtf)/text()"/>

Produces following output -
<?xml version="1.0" encoding="utf-8"?>
   <b>this this 1 this 2 </b>
   <b>this 3 </b>
   <b>this 4 this 5 </b>
   <b>this 6 this 7 this 8 this 9 </b>
   <b>this 10 this 11 this 12 this 13 </b>

Hope this helps,


On 8/10/05, Marcin Mi3kowski <milek_pl@xxxxx> wrote:
> Hi,
> I'm wondering if it's practical to use XSLT in a following scenario: you
> have an XML file which should be reformatted (formatted "tidy") to join
> sibling elements, like:
> <b>this</b><b> </b><b>is</b><b> </b><b>bold<text</b>
> which should be transformed this:
> <b>this is bold text</b>
> Or, in a more complex example:
> <a><b>this</b></a><a><b> </b></a><a><b>more</b></a><a><b>
> </b></a><a><b>text</b></a>
> So this is a transformation to keep the resulting file tidy, with less
> tagging. I'm planning such a transformation for WordML files before
> submitting them for translation where less tagging means higher
> translation quality.
> Thank you for all advice,
>        Marcin Milkowski

Current Thread