Subject: [xsl] status list problem From: Ahmad J Reeves <ahmad@xxxxxxxxxxxxxx> Date: Thu, 18 Apr 2002 20:02:40 +0100 |
Hi, My xslt stylesheet below:- xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:key name="kByID" match="DIRECT | LOCAL | GLOBAL | ADMIN" use="CHARACTER_ID"/> <xsl:variable name="vUniqueCharacters" select="LOG/*[generate-id() = generate-id(key('kByID', CHARACTER_ID )[1] ) ]"/> <xsl:variable name="NL" select="'
'"/> <xsl:template match="/"> <xsl:value-of select="concat('Number of Unique Characters',' ',count($vUniqueCharacters))"/> <xsl:value-of select="$NL"/> <xsl:value-of select="$NL"/> <xsl:for-each select="$vUniqueCharacters"> <xsl:if test="not(CHARACTER_ID[. = preceding::CHARACTER_ID])"> <xsl:value-of select="concat('STATUS ',CHARACTER_STATUS, ' ', count(key('kByID',CHARACTER_ID)), $NL )"/> </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet> Is supposed to produce a list of unique character statuses and how many occurences of them there are. With the xml test below I get: - Number of Unique Characters 4 STATUS 6 3 STATUS 4 1 STATUS 3 1 STATUS 1 1 Instead of Number of Unique Characters 4 STATUS 6 1 STATUS 4 1 STATUS 3 1 STATUS 1 1 As my dodgy <xsl:if test="not(CHARACTER_ID[. = preceding::CHARACTER_ID])"> isn't removing the duplicates. merciful answers gladly accepted ;_) A. XML -------------------------------------- <LOG> <DIRECT> <COMMUNICATION_TYPE> PAGETELL </COMMUNICATION_TYPE> <Invoc_serial> 29 </Invoc_serial> <Serial> 19461910 </Serial> <USAGE> TELL </USAGE> <MESSAGE_TYPE> EMOTE </MESSAGE_TYPE> <CHARACTER_ID> 10010 </CHARACTER_ID> <CHARACTER_STATUS> 6 </CHARACTER_STATUS> <LOCATION_ID> 24488 </LOCATION_ID> <TARGET_CHARACTER_ID> 18735 </TARGET_CHARACTER_ID> <TARGET_CHARACTER_STATUS> 6 </TARGET_CHARACTER_STATUS> <TARGET_CHARACTER_LOCATION_ID> 10433 </TARGET_CHARACTER_LOCATION_ID> <MESSAGE> %#NF#%wthinks %y%l. o O ( %w%lThinks of a new prefix/suffix.%y%l ) </MESSAGE> <TIME> 'Tue, 01 Jan 2002 20:27:50 +0000' </TIME> </DIRECT> <LOCAL> <COMMUNICATION_TYPE> PAGETELL </COMMUNICATION_TYPE> <Invoc_serial> 29 </Invoc_serial> <Serial> 19461911 </Serial> <USAGE> TELL </USAGE> <MESSAGE_TYPE> EMOTE </MESSAGE_TYPE> <CHARACTER_ID> 10010 </CHARACTER_ID> <CHARACTER_STATUS> 6 </CHARACTER_STATUS> <LOCATION_ID> 24488 </LOCATION_ID> <TARGET_CHARACTER_ID> 23212 </TARGET_CHARACTER_ID> <TARGET_CHARACTER_STATUS> 3 </TARGET_CHARACTER_STATUS> <TARGET_CHARACTER_LOCATION_ID> 293 </TARGET_CHARACTER_LOCATION_ID> <MESSAGE> %#NF#%wthinks %y%l. o O ( %w%lThinks of a new prefix/suffix.%y%l ) </MESSAGE> <TIME> 'Tue, 01 Jan 2002 20:27:50 +0000' </TIME> </LOCAL> <ADMIN> <COMMUNICATION_TYPE> PAGETELL </COMMUNICATION_TYPE> <Invoc_serial> 29 </Invoc_serial> <Serial> 19461912 </Serial> <USAGE> TELL </USAGE> <MESSAGE_TYPE> EMOTE </MESSAGE_TYPE> <CHARACTER_ID> 10010 </CHARACTER_ID> <CHARACTER_STATUS> 6 </CHARACTER_STATUS> <LOCATION_ID> 24488 </LOCATION_ID> <TARGET_CHARACTER_ID> 16783 </TARGET_CHARACTER_ID> <TARGET_CHARACTER_STATUS> 5 </TARGET_CHARACTER_STATUS> <TARGET_CHARACTER_LOCATION_ID> 39784 </TARGET_CHARACTER_LOCATION_ID> <MESSAGE> %#NF#%wthinks %y%l. o O ( %w%lThinks of a new prefix/suffix.%y%l ) </MESSAGE> <TIME> 'Tue, 01 Jan 2002 20:27:50 +0000' </TIME> </ADMIN> <GLOBAL> <COMMUNICATION_TYPE> PAGETELL </COMMUNICATION_TYPE> <Invoc_serial> 29 </Invoc_serial> <Serial> 19461913 </Serial> <USAGE> TELL </USAGE> <MESSAGE_TYPE> EMOTE </MESSAGE_TYPE> <CHARACTER_ID> 19910 </CHARACTER_ID> <CHARACTER_STATUS> 4 </CHARACTER_STATUS> <LOCATION_ID> 24488 </LOCATION_ID> <TARGET_CHARACTER_ID> 35257 </TARGET_CHARACTER_ID> <TARGET_CHARACTER_STATUS> 4 </TARGET_CHARACTER_STATUS> <TARGET_CHARACTER_LOCATION_ID> 293 </TARGET_CHARACTER_LOCATION_ID> <MESSAGE> %#NF#%wthinks %y%l. o O ( %w%lThinks of a new prefix/suffix.%y%l ) </MESSAGE> <TIME> 'Tue, 01 Jan 2002 20:27:50 +0000' </TIME> </GLOBAL> <DIRECT> <COMMUNICATION_TYPE> PAGETELL </COMMUNICATION_TYPE> <Invoc_serial> 29 </Invoc_serial> <Serial> 19461994 </Serial> <USAGE> TELL </USAGE> <MESSAGE_TYPE> STD </MESSAGE_TYPE> <CHARACTER_ID> 88010 </CHARACTER_ID> <CHARACTER_STATUS> 3 </CHARACTER_STATUS> <LOCATION_ID> 31132 </LOCATION_ID> <TARGET_CHARACTER_ID> 14211 </TARGET_CHARACTER_ID> <TARGET_CHARACTER_STATUS> 5 </TARGET_CHARACTER_STATUS> <TARGET_CHARACTER_LOCATION_ID> 3726 </TARGET_CHARACTER_LOCATION_ID> <MESSAGE> "lol I found my own ways to amuse myself tho...like when liv tyler went 'ive got to take him to my father' im like yayaay were going to se steve tylerrrrr!!! " </MESSAGE> <TIME> 'Tue, 01 Jan 2002 20:28:08 +0000' </TIME> </DIRECT> <DIRECT> <COMMUNICATION_TYPE> PAGETELL </COMMUNICATION_TYPE> <Invoc_serial> 29 </Invoc_serial> <Serial> 19461995 </Serial> <USAGE> TELL </USAGE> <MESSAGE_TYPE> STD </MESSAGE_TYPE> <CHARACTER_ID> 15444 </CHARACTER_ID> <CHARACTER_STATUS> 1 </CHARACTER_STATUS> <LOCATION_ID> 24488 </LOCATION_ID> <TARGET_CHARACTER_ID> 12969 </TARGET_CHARACTER_ID> <TARGET_CHARACTER_STATUS> 3 </TARGET_CHARACTER_STATUS> <TARGET_CHARACTER_LOCATION_ID> 111 </TARGET_CHARACTER_LOCATION_ID> <MESSAGE> "lol I found my own ways to amuse myself tho...like when liv tyler went 'ive got to take him to my father' im like yayaay were going to se steve tylerrrrr!!! " </MESSAGE> <TIME> 'Tue, 01 Jan 2002 20:28:08 +0000' </TIME> </DIRECT> </LOG> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Problem with API, Michael Welter | Thread | [xsl] Evaluating a node-set with se, Dyck, Stan |
Re: [xsl] Replacing images with alt, Thomas B. Passin | Date | Re: [xsl] incrementing a counter in, Greg Faron |
Month |