| 
 
Subject: Re: [xsl] Anyone can explain me this syntax? From: David Carlisle <davidc@xxxxxxxxx> Date: Tue, 13 Jan 2004 15:38:55 GMT  | 
this is explained in jeni's pages on grouping but basically
> Why the . (dot) is used? 
. is the current node as always in xpath
>  What's the meaning of the | (pipe)?
| is set union select="a|b" selects all nodes called a and all nodes
  called b and returns the union of those sets (which means, it can
  often be read as "or") select="a|b" selects all elements called a or
  b.
> - What's the meaning of [1]? 
if a predicate is numeric it is tests the value of position()
select="a[3]"
selects the third a child of the current node.
> I tried by using [2] and it worked too... or, perhaps I was lucky?
[2] wouldn't work in general, that would select the second item of each
group rather than the first, and in particular if a group only had one
item you would get nothing.
You want to test if the current node is the first item of the group
in XPath 2 draft that is
 . is key('relacion_x_cobertura', REL_ID)[1]
but Xpath 1 does not have the "is" operator or any other direct way to
test node identity so you can use either one of two methods
testing generated ids:
generate-id(.) = generate-id(key('relacion_x_cobertura', REL_ID)[1])
this does a string equality test of the generated ids, which will be
equal only if they are the same node
or you can do the test you had
count(. | key('relacion_x_cobertura', REL_ID)[1]) = 1
. | key('relacion_x_cobertura', REL_ID)
is the union of the two nodes . and key('relacion_x_cobertura',
REL_ID)[1], so eiether these nodes are different and so this set has two
elements or they are the same in which case the set will have one
element (so count(....) =1.
(Note this test relies on the fact that in this context you know that
there is some element with key('relacion_x_cobertura', REL_ID) as 
in general you need to check that the  key('relacion_x_cobertura',
REL_ID) is non-empty, as if that is the empty set the union with . would
again only have one element in it.
David
-- 
http://www.dcarlisle.demon.co.uk/matthew
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. 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
________________________________________________________________________
 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
| Current Thread | 
|---|
  | 
| <- Previous | Index | Next -> | 
|---|---|---|
| [xsl] Anyone can explain me this sy, Jaime Stuardo | Thread | Re: [xsl] Anyone can explain me thi, Eliot Kimber | 
| RE: [xsl] Anyone can explain me thi, Jarno . Elovirta | Date | Re: [xsl] Anyone can explain me thi, Eliot Kimber | 
| Month |