[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Grouping the elements
Hi Raj,
Here's a not-so-orthodox solution (I think, not sure though) to your inquiry. It works as follows: grab the last item of each element and create a "List" element or a "copy" element to the output stream depending on the count of the node. If it is supposed to become a "List" element, it will copy all the nodes with the same name into that list. Here's the code (hope the lines are not messed up by the mailer): <?xml version="1.0" encoding="UTF-8"?> <?altova_samplexml testRaj.xml?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:output indent="yes" method="xml" /> <xsl:template match="Root"> <xsl:copy> <xsl:apply-templates select="year[position() = last()]" /> <xsl:apply-templates select="month[position() = last()]" /> <xsl:apply-templates select="week[position() = last()]" /> <xsl:apply-templates select="day[position() = last()]" /> </xsl:copy> </xsl:template> <xsl:template match="*"> <xsl:variable name="curName" select="name()" /> <xsl:if test="count(../*[name() = $curName]) > 1"> <xsl:element name="{local-name(.)}List"> <xsl:copy-of select="../*[name() = $curName]" /> </xsl:element> </xsl:if> <xsl:if test="count(../*[name() = $curName]) = 1"> <xsl:copy-of select="." /> </xsl:if> </xsl:template> </xsl:stylesheet>
Arulraj wrote: Hi,
|
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
|