|
Subject: RE: [xsl] Cannot select a node here: the context item is an atomic value From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 5 Apr 2005 18:28:51 +0100 |
You'll need to set a variable outside the outer loop, and in the inner loop
do something like
<xsl:for-each select="$s/my/xpath/query[@day=$day]">
In fact, you might as well select the whole path in the variable and just
use
<xsl:for-each select="$s[@day=$day]">
I would tend to use .-1 rather than position()-1, but the effect is the
same. Actually, I would probably not build the duration from a string, but
rather from:
<xsl:variable name="one-day" select="xs:dayTimeDuration('P1D')"/> (global
variable)
then in the loop:
<xsl:variable name="day" select=". * $one-day"/>
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: chris [mailto:oneskiingfool@xxxxxxxxx]
> Sent: 05 April 2005 18:11
> To: xslt
> Subject: [xsl] Cannot select a node here: the context item is
> an atomic value
>
> Hello,
> I'm using XSLT/XPath 2.0 and am stuck on a very basic problem again.
> All I want to do is nest my for-each loop inside another loop so that
> the inner for-each loops executes x number of times.
> To be more specific, I'm creating an HTML table with dates running
> down the left column and corresponding values in the rest of the
> cells.
> So I have date range: $date1 to $date2
> I calculated the number of days between the two: $dayCount
>
> <xsl:for-each select="1 to $dayCount">
> <xsl:variable name="day" select="($date1+
> xdt:dayTimeDuration(concat('P',position()-1,'D')))"/>
> <tr>
> <td>
> <xsl:value-of
> select="format-dateTime($day,'[Y,*-2]-[M,2]-[D,2]')"/>
> </td>
> <xsl:for-each select="my/xpath/query[@day=$day]">
> <td>
> <xsl:value-of select="."/>
> </td>
> </xsl:for-each>
> </tr>
> </xsl:for-each>
>
>
> The inner loop gives me this error:
> Cannot select a node here: the context item is an atomic value
>
> Could somebody kindly let me know how to do this? It's clearly stated
> in the documentation that I can't do it this way (nest node loops in
> atomic loops), but I don't see a workaround.
>
> P.S. Also any hints if there is a better way to do that outer loop
> would be appreciated as well.
>
> Thanks!
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Cannot select a node here: th, chris | Thread | Re: [xsl] Cannot select a node here, chris |
| RE: [xsl] math return result proble, Michael Kay | Date | [xsl] math return result problem, 04083259 |
| Month |