Subject: Re: Unique attribute values
From: "Sean Tiley" <sean.tiley@xxxxxxxxx>
Date: Thu, 10 Jan 2008 11:44:45 -0500
|
Using XSLT 2.0
Thanks for all of the advice.
Sean
On Jan 10, 2008 11:41 AM, Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote:
>
> On 10/01/2008, Sean Tiley <sean.tiley@xxxxxxxxx> wrote:
> > Hi there,
> > I have the following structure in an XML file
> >
> > <root>
> > <file name="c:\test.java">
> > <error line="4" message="Message1" severity="2"/>
> > <error line="67" message="Message2" severity="4"/>
> > </file>
> > <file name="c:\code.java">
> > <error line="2" message="Message1" severity="2"/>
> > <error line="54" message="Message2" severity="4"/>
> > <error line="122" message="Message1" severity="2"/>
> > <error line="124" message="Message2" severity="4"/>
> > </file>
> > </root>
> >
> > What I want to do is the following.
> > I want a list of the unique values for the message attribute
> > I then want to output attribute value and the number of times it
> > appears in the file.
> >
> > I can successfully get the count for an attribute value by using
> > <xsl:value-of select="count(/root/file/error[@message='Message1'])"/>
> > but I am hardcoding the 'Message1" which is clearly not optimal
>
> Assuming XSLT 2.0,
>
> <xsl:for-each-group select="/root/file/error" group-by="@message">
> <xsl:value-of select="current-grouping-key()"/>
> <xsl:value-of select="count(current-group())"/>
> </
>
> you'll need to sort out the formatting...
>
>
> --
> Andrew Welch
> http://andrewjwelch.com
> Kernow: http://kernowforsaxon.sf.net/
>
>
--
Sean Tiley
sean.tiley@xxxxxxxxx
|