Help | Site Map
Connecting Tech Pros Worldwide
 
 
LinkBack Thread Tools
  #1  
Old July 20th, 2005, 08:48 AM
Steffen Beyer
Guest
 
Posts: n/a
Default XSLT: iterating over a node-set stored in a variable

Hi,

following situation:

<xsl:variable name="newsarticles">
<xsl:call-template name="find_current_newsarticles"/>
</xsl:variable>

<!--
$newsarticles now contains something like

<news:article> ... </news:article>
<news:article> ... </news:article>
-->

<xsl:if test="$newsarticles">
<p>News</p>

<xsl:for-each select="$newsarticles">
<p>Article</p>

<xsl:apply-templates select="."/>
</xsl:for-each>
</xsl:if>

The body of the if-clause gets executed but the for-each doesn't loop at
all. I'm really stuck - what XPath expression do I need to use here?

BTW, this is of course not for-each specific. <apply-templates
select="$newsarticles"/> does not work either.

Regards,
--
Steffen Beyer <sbeyer@reactor.de>

GnuPG key fingerprint: CA00 1611 242B 89D4 E643 E235 05F3 7689 DD3E EB26
Public key available upon request or at http://wwwkeys.de.pgp.net
  #2  
Old July 20th, 2005, 08:48 AM
Marrow
Guest
 
Posts: n/a
Default Re: iterating over a node-set stored in a variable

Hi Steffen,

Your variable $newsarticles will contain an RTF (result tree fragment) - in
XSLT 1.0 RTFs cannot be used as a node-set therefore this line...
[color=blue]
> <xsl:for-each select="$newsarticles">[/color]

should raise a transformation error. Having said that, some transformation
engines do allow RTFs to be used as node-sets without conversion.

Your transformation may support an extension function that enables you to
convert RTFs to node-sets (e.g. xxx:Node-set() - where 'xxx' will be an
appropriate extension prefix). Or your transformation engine may support
EXSLT (www.exslt.org) in which case you should be able to use
exsl:node-set().

HTH
Marrow
http://www.marrowsoft.com - home of Xselerator (XSLT IDE and debugger)
http://www.topxml.com/Xselerator


"Steffen Beyer" <sbeyer@reactor.de> wrote in message
news:20041027120145.66aeb2c5.sbeyer@reactor.de...[color=blue]
> Hi,
>
> following situation:
>
> <xsl:variable name="newsarticles">
> <xsl:call-template name="find_current_newsarticles"/>
> </xsl:variable>
>
> <!--
> $newsarticles now contains something like
>
> <news:article> ... </news:article>
> <news:article> ... </news:article>
> -->
>
> <xsl:if test="$newsarticles">
> <p>News</p>
>
> <xsl:for-each select="$newsarticles">
> <p>Article</p>
>
> <xsl:apply-templates select="."/>
> </xsl:for-each>
> </xsl:if>
>
> The body of the if-clause gets executed but the for-each doesn't loop at
> all. I'm really stuck - what XPath expression do I need to use here?
>
> BTW, this is of course not for-each specific. <apply-templates
> select="$newsarticles"/> does not work either.
>
> Regards,
> --
> Steffen Beyer <sbeyer@reactor.de>
>
> GnuPG key fingerprint: CA00 1611 242B 89D4 E643 E235 05F3 7689 DD3E EB26
> Public key available upon request or at http://wwwkeys.de.pgp.net[/color]


  #3  
Old July 20th, 2005, 08:48 AM
Steffen Beyer
Guest
 
Posts: n/a
Default Re: iterating over a node-set stored in a variable

On Wed, 27 Oct 2004 11:32:18 GMT
"Marrow" <marrow@somewhere.so.fu> wrote:
[color=blue]
> Your transformation may support an extension function that enables you
> to convert RTFs to node-sets (e.g. xxx:Node-set() - where 'xxx' will be
> an appropriate extension prefix). Or your transformation engine may
> support EXSLT (www.exslt.org) in which case you should be able to use
> exsl:node-set().[/color]

I'm using LibXSLT - libxslt:node-set() and exsl:node-set() do both work
and solve my problem.

Thanks a lot!

Regards,
--
Steffen Beyer <sbeyer@reactor.de>

GnuPG key fingerprint: CA00 1611 242B 89D4 E643 E235 05F3 7689 DD3E EB26
Public key available upon request or at http://wwwkeys.de.pgp.net
 

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over network members.
Post your question now . . .
It's fast and it's free

Popular Articles