Subject: RE: [xsl] key match and x-path problems From: Ahmad J Reeves <ahmad@xxxxxxxxxxxxxx> Date: Tue, 23 Apr 2002 23:46:15 +0100 |
Hi Kev, Many thanks for your prompt reply and correct solution. I had tried another key that grouped all the statuses but couldn't see how to bring the two together. Your solution is most elegant. Many thanks once again, Ahmad At 14:34 23/04/02 +0100, you wrote: > >> So how could I then count the correct number of unique statuses ? >> >> Ahmad >> >> > >Here is a solution which I think does what you want, i.e. count the number >of times a CHARACTER_STATUS value is used in the DIRECT, LOCAL, GLOBAL, >ADMIN elements that are the first to contain any CHARACTER_ID. > >The easy way is probably using a second key to map CHARACTER_STATUS values >to the parent element. > ><xsl:key name='kByStatus' match="DIRECT | LOCAL | GLOBAL | ADMIN" >use="number(CHARACTER_STATUS)"/> > >You can the use, > ><xsl:for-each select="$vUniqueCharacters"> > <xsl:variable name='sameStatus' >select="key('kByStatus',number(CHARACTER_STATUS))"/> > <xsl:variable name='intersect' >select='$vUniqueCharacters[count(.|$sameStatus)=count($sameStatus)]'/> > > <xsl:if test=".=$intersect[1]"> > <xsl:text>STATUS </xsl:text> > <xsl:value-of select='CHARACTER_STATUS'/> > <xsl:text>SUM </xsl:text> > <xsl:value-of select="count($intersect)"/> > <xsl:value-of select="$NL"/> > </xsl:if> ></xsl:for-each> > >The loop iterates over the unique characters. To find if this is first with >a given CHARACTER_STATUS it computes the intersect of the unique characters >and all the ones which have the same CHARACTER_STATUS value. For there on >its fairly straight forward to determine if this is first one in that set >and how many others are in the set. > >Kev. > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] key match and x-path prob, Kevin Jones | Thread | [xsl] Schema location in target XML, Uslu, Cihan Y (MED) |
Re: [xsl] xalan:nodeset or xsl:copy, Greg Faron | Date | [xsl] RE: [sly] REPOST: Applying Te, Kunal H. Parikh |
Month |