[Home] [By Thread] [By Date] [Recent Entries]
Please try this stylesheet:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes" /> <xsl:key name="x" match="Root/*" use="local-name()" /> <xsl:template match="/Root">
<Root>
<xsl:for-each select="*[generate-id() =
generate-id(key('x', local-name())[1])]">
<xsl:choose>
<xsl:when test="count(key('x', local-name())) > 1">
<xsl:element name="{local-name()}List">
<xsl:copy-of select="key('x', local-name())" />
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="key('x', local-name())" />
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</Root>
</xsl:template></xsl:stylesheet> This when applied to XML: <?xml version="1.0" encoding="UTF-8"?> <Root> <year>2006</year> <year>2007</year> <year>2008</year> <week>1</week> <day>01</day> <day>02</day> </Root> Produces the wanted result: <?xml version="1.0" encoding="UTF-8"?>
<Root>
<yearList>
<year>2006</year>
<year>2007</year>
<year>2008</year>
</yearList>
<week>1</week>
<dayList>
<day>01</day>
<day>02</day>
</dayList>
</Root>On 9/14/06, Arulraj <p_arulraj@xxxxxxxxx> wrote: Hi, -- Regards, Mukul Gandhi http://gandhimukul.tripod.com
|

Cart



