Re: [xsl] Unique attribute values

Subject: Re: [xsl] Unique attribute values
From: "Sean Tiley" <sean.tiley@xxxxxxxxx>
Date: Thu, 10 Jan 2008 12:46:43 -0500
Thanks again.
The suggested solution works great.

What if I wanted to order the output based on the # of occurences of
an attribute value?


Sean


On Jan 10, 2008 11:44 AM, Sean Tiley <sean.tiley@xxxxxxxxx> wrote:
> 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
>



-- 
Sean Tiley
sean.tiley@xxxxxxxxx

Current Thread