xsl-list
[Top] [All Lists]

Re: LimitPredicate

2004-08-07 07:37:48
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



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