Re: [xsl] Unique attribute values

Subject: Re: [xsl] 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

Current Thread