xsl-list
[Top] [All Lists]

Re: [xsl] Unique attribute values

2008-01-10 09:45:26
Using XSLT 2.0
Thanks for all of the advice.

Sean

On Jan 10, 2008 11:41 AM, Andrew Welch 
<andrew(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com> wrote:

On 10/01/2008, Sean Tiley <sean(_dot_)tiley(_at_)gmail(_dot_)com> 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[(_at_)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/


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





-- 
Sean Tiley
sean(_dot_)tiley(_at_)gmail(_dot_)com

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>