[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Just the first 'x' elements within a for-each

Subject: Re: Just the first 'x' elements within a for-each
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Tue, 18 Mar 2003 14:01:20 +0000
xsl for each position first
Hi Si,

> The following displays all the headlines rather than just the first 2:
>
> <xsl:stylesheet version="1.0"
>                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="html"/>
> <xsl:template match="/">
>     <xsl:for-each select="/package/stories/story/properties[position() &lt;= 2]">
>       <!-- We only want the first 2 headline -->
>       <br/>
>       <xsl:value-of select="headline"/>
>     </xsl:for-each>
>   </xsl:template>
> </xsl:stylesheet>

Ah, right -- the position that's used in the predicate here applies to
the position of the <properties> element within its <story> parent,
rather than the position of the <properties> element amongst all the
<properties> elements (within <story> elements, within...) in the
document.

You just need to add some brackets:

  <xsl:for-each select="(/package/stories/story/properties)[position() &lt;= 2]">
    ...
  </xsl:for-each>

this will collect up the <properties> elements into a node set and the
position of a particular <properties> element will be judged based on
its position, in document order, amongst the other nodes in that node
set.
  
Or (depending on the structure of the XML) you might be able to move
the predicate so that it's getting the position of the right thing.
For example, perhaps you want the <properties> children of the first
two <story> elements:

  <xsl:for-each select="/package/stories/story[position() &lt;= 2]/properties">
    ...
  </xsl:for-each>

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.