At 2004-08-07 17:09 +0300, mankar(_at_)CENTRAL(_dot_)NTUA(_dot_)GR wrote:
I am having trouble detecting specific nodes in a node-set
...
I
mean
can i write something like select"ITEM[position() mod 3 = 1](4) to select
just the fourth node
among the particular nodes.
You are so very close ... XPath does work as you expect, but your syntax is
not quite right.
You can use:
ITEM[position() mod 3 = 1][4]
which is equivalent to:
ITEM[position() mod 3 = 1][position() = 4]
because each predicate is applied to the node set *resulting* from having
applied the previous predicate.
I hope this helps.
....................... Ken
t:\ftemp>type manousos.xml
<ITEMS>
<ITEM>1</ITEM>
<ITEM>2</ITEM>
<ITEM>5</ITEM>
<ITEM>7</ITEM>
<ITEM>2</ITEM>
<ITEM>5</ITEM>
<ITEM>10</ITEM>
<ITEM>2</ITEM>
<ITEM>5</ITEM>
<ITEM>15</ITEM>
<ITEM>2</ITEM>
<ITEM>5</ITEM>
<ITEM>17</ITEM>
<ITEM>2</ITEM>
<ITEM>5</ITEM>
</ITEMS>
t:\ftemp>type manousos.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="text"/>
<xsl:template match="ITEMS">
<xsl:value-of select="ITEM[position() mod 3 = 1][4]"/>
</xsl:template>
</xsl:stylesheet>
t:\ftemp>saxon manousos.xml manousos.xsl
15
t:\ftemp>
--
World-wide on-site corporate, govt. & user group XML/XSL training.
G. Ken Holman mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers: http://www.CraneSoftwrights.com/legal