Subject: Re: 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/
|