[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] N input nodes to specific number of ouput nodes


Subject: Re: [xsl] N input nodes to specific number of ouput nodes
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Wed, 22 Oct 2008 18:05:40 +0100

2008/10/22 Bordeman, Chris <Chris.Bordeman@xxxxxxxxxxxxxxxxx>:
> I'm trying to get the "1 to 10" to work with for-each.
>
> <xsl:for-each select="1 to 10">
>
> Problem is inside the loop how do I access the input nodes?  It keeps
> complaining that I can't use whatever element here,  "the context item
> is an atomic value."
>

yeah that's a bit of a pain, you have to maintain a pointed to it with
a variable:

<xsl:variable name="current" select="."/>
<xsl:for-each select="1 to 10">
  <xsl:value-of select="$current/whatever"/>

If you do have access to the full power of 2.0 :) then there are other
solutions that you might prefer, eg:

<xsl:variable name="na" as="element()">
	<output>N/A</output>	
</xsl:variable>

with:

<xsl:for-each select="(/path/to/input, for $x in 1 to 10 return
$na)[position() le 10]">
  <xsl:copy-of select="."/>
</xsl:for-each>


-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/


Current Thread