Re: [xsl] XSL: multiple element come to single parent element

Subject: Re: [xsl] XSL: multiple element come to single parent element
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Sun, 10 May 2009 19:30:32 +0200
Selva Ganesh wrote:

<div class="LegEnactingText">
<p class="LegText">The Secretary</p>
</div>
<div class="LegEnactingText">
<p class="LegText">vfgdhdf dfhdsgh </p>
</div>
<div class="LegEnactingText">
<p class="LegText">dffsg gsdfg sdghds</p>
</div>
...
...
<div class="LegEnactingText">
<p class="LegText">sgg dgfg dgfgd</p>
</div>

What i need:

<enacting-words>
<enacting-text>The Secretary</enacting-text>
<enacting-text>vfgdhdf dfhdsgh </enacting-text>
<enacting-text>dffsg gsdfg sdghds</enacting-text>
...
...
<enacting-text>sgg dgfg dgfgd</enacting-text>
</enacting-words>

Write a template for the parent element of those div elements. The following assumes that is a 'body' element but you could of course change that as needed:


<xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    version="1.0">

<xsl:output method="xml" indent="yes" />

    <xsl:template match="body">
      <enacting-words>
        <xsl:apply-templates select="div[@class = 'LegEnactingText']/p"/>
      </enacting-words>
    </xsl:template>

    <xsl:template match="div[@class = 'LegEnactingText']/p">
      <enacting-text>
        <xsl:apply-templates/>
      </enacting-text>
    </xsl:template>

</xsl:stylesheet>
--

	Martin Honnen
	http://msmvps.com/blogs/martin_honnen/

Current Thread