xsl-list
[Top] [All Lists]

RE: [xsl] simulating for with foreach

2006-07-05 02:28:05
You're not making your requirements very clear. 

If you have the sequence of positions as input (in XSLT 1.0 this would have
to be in a node-set, e.g.

<xsl:variable name="positions">
  <p>1</p>
  <p>5</p>
  <p>6</p>
</xsl:variable>

then you can process the nodes at those positions using

<xsl:variable name="nodes" select="nodes"/>

<xsl:for-each select="$positions/p">
  <xsl:variable name="pos" select="number(.)"/>
  <xsl:apply-templates select="$nodes/node[$pos]"/>
</xsl:for-each>

Michael Kay
http://www.saxonica.com/
 

-----Original Message-----
From: Mohsen Saboorian [mailto:mohsens(_at_)gmail(_dot_)com] 
Sent: 05 July 2006 10:19
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] simulating for with foreach

Hi,
I would like to know if it is possible to iterate over a set 
of elements (say node in this example) in a special way (not 
every element, but 1, 3, 5, ... or any other sequence). (XSLT 
1) <nodes>
  <node />
  <node />
  <node />
  <node />
</nodes>
I know that one way is to <xsl:iterate> and use <xsl:if> and 
position(), but there are situations in which you can not use
position() because it doesn't give you the exact node (for 
example when you have #text elements randomly beside <node>.

Thanks.

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--