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