Subject: Re: [xsl] Listing all element/attributes/attribute values From: James Cummings <cummings.james@xxxxxxxxx> Date: Thu, 7 Jul 2005 15:26:57 +0100 |
On 7/7/05, David Carlisle <davidc@xxxxxxxxx> wrote: > > This is a typical "muenchian grouping" problem > Only in so far as you are more likely to think of using > xsl:for-each-group than you are of usimg the MG equivalent > *[generate-id()=generate-id(key('e',name()))]" > (except of course for people on this list who see this idiom most > days:-) I thought it might be something along those lines, but I seemed to fail when attempting to gropu both elements and attributes (in my xslt2 solution using xsl:for-each-group) but I've no real reason to use xslt2 over 1 in this case so, works fine for me. :-) Many thanks to both David and Joris. > > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0"> > > > <xsl:output method="text"/> > > <xsl:key name="e" match="*" use="name()"/> > <xsl:key name="a" match="@*" use="concat(name(..),' ',name())"/> > > <xsl:template match="/"> > <xsl:for-each select="//*[generate-id()=generate-id(key('e',name()))]"> > <xsl:sort select="name()"/> > <xsl:text> > </xsl:text> > <xsl:value-of select="name()"/> (<xsl:value-of select="count(key('e',name()))"/>) > <xsl:for-each select="key('e',name())/@*[generate-id()=generate-id(key('a',concat(name(..),' ',name())))]"> > <xsl:sort select="name()"/> > <xsl:text> > - </xsl:text> > <xsl:value-of select="name()"/> > <xsl:for-each select="key('a',concat(name(..),' ',name()))"> > <xsl:text> > = </xsl:text> > <xsl:value-of select="."/> > </xsl:for-each> > </xsl:for-each> > </xsl:for-each> > </xsl:template> > > </xsl:stylesheet> > > > > $ saxon list.xml list.xsl > > a (1) > > - href > = http://www.example.com/ > div (1) > > - class > = foo > p (2) > > - class > = big > = small > - style > = font-weight: bold > - xml:id > = abc123 > span (2) > > - class > = foo > = bar > > > > > ________________________________________________________________________ > This e-mail has been scanned for all viruses by Star. The > service is powered by MessageLabs. For more information on a proactive > anti-virus service working around the clock, around the globe, visit: > http://www.star.net.uk > ________________________________________________________________________ > > -- James Cummings, Cummings dot James at GMail dot com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Listing all element/attri, David Carlisle | Thread | Re: [xsl] Listing all element/attri, Joris Gillis |
[xsl] Sorting Problem, Dhami, Ankit \(UMR S | Date | [xsl] pre-processing of child eleme, Torsten Schassan |
Month |