[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Grouping the elements
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
|
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
|