[Home] [By Thread] [By Date] [Recent Entries]

Subject: Re: LimitPredicate
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Sat, 07 Aug 2004 10:37:48 -0400
At 2004-08-07 17:09 +0300, mankar@xxxxxxxxxxxxxxx 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@xxxxxxxxxxxxxxxxxxxx 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

Current Thread
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member