[Top] [All Lists]

Re: [xsl] Slow XSLT

2008-03-07 04:59:29
On 07/03/2008, Cleyton Jordan <cleytonjordan(_at_)yahoo(_dot_)co(_dot_)uk> 
 1 - <xsl:variable name="teams"

 I know that this expression is getting a node set of
 all the unique team elements.

 I am confused about the "." (dot) in this expression
 and the comparisson with the preceding::team.

 For the first team, does the "." (dot) match the value
 of the node - 'Brazil' - and preceding::team match the
 value as well?


 or "." and preceding::team match the wholde node?

 What are we comparing here the element value or the
 whole team element?

. is the string value, so 'Brazil'

The preceding axis contains all nodes before the current node in
document order, not including the current node - so for the first
<team> it would return nothing.

 2 - Here we are inside a loop
 <xsl:template match="results">
  <xsl:for-each select="$teams">
    <xsl:variable name="this" select="."/>

 Again does "." match the value of each team or the
 whole team element?

. is the string value of the current node, not the element itself

 3 - <xsl:variable name="played"

 Now we are computing how many times a particular team
 has played.


 When you use this predicate [team=$this] are we
 comparing the value of the element or the team
 elements ?

the string value of elements are compared

 4 - <xsl:variable name="won"
 select="count($matches[team[.=$this]/@score >

 I know that this expression is computing the victories
 of a particular team. However, I do not understand the
 logic of the expression. We have an extra predicate:


 Why cant we just use [team=$this]/@score ?

because the score attribute is on the team element:


would return the score attribute of the element in $matches if the
predicate evaluated to true


returns the score attribute of the team element is the predicate
evaluated to true

 5 - <xsl:variable name="for"

 What does current() mean in here? Is it the same as
 the $this variable?

current() returns the node that was the context node outside of the
xpath...  when you do $matches/team the context node is changed to the
team element in $matches, the current() function will return what was
context node before you changed it.

Andrew Welch
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>

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