[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Counting matching elements across two documents


Subject: Re: [xsl] Counting matching elements across two documents
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 17 Jan 2005 14:34:00 GMT

  <xsl:value-of select="count(//player[number = ./number])" />

The Xpaths number and ./number will always select the same thing so your
predicate is the same as true() ie the same as no predicate.

I think you want current() not . to get the number of the current player
in $roster.

//player selects all the players in the current document which is
roster.xml at this point. I think you intend that to be in matches.xml
in which case it wants to start with $matches  not with / where
$matches is defined at the top level by
<xsl:variable name="matches" select="/">

$matches/matches/week/match/player[lag='W'][number=current()/number]

I changed // to an explict path as morally it ought to be faster, but
last time I told someone to do that MK pointed out that saxon has
optimisations for // (saving previous results) not used in general so it
isn't clearly a win. In any case probably using keys would speed things
up (or at least make the optimisation explict) but best to get things
working before worrying about speed.


David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________


Current Thread