[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

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"?>
<root>
  <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>
</root>

This XSLT stylesheet -
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" xmlns:common="http://exslt.org/common"
exclude-result-prefixes="common">

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

<xsl:template match="a">
   <b>
     <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()"/>
   </b>
</xsl:template>
	
</xsl:stylesheet>

Produces following output -
<?xml version="1.0" encoding="utf-8"?>
<root>
   <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>
</root>

Hope this helps,

Regards,
Mukul

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
Keywords