Re: [xsl] problem passing parameter to apply-templates

Subject: Re: [xsl] problem passing parameter to apply-templates
From: David Carlisle <davidc@xxxxxxxxx>
Date: Thu, 1 Sep 2005 17:33:52 +0100
> >  <xsl:apply-templates
> > select="document('../xml/clasif2.xml')/clasif2">
> > 
> the select above returns a node set with "item"s that
> is matched with the template matching item.

No, it returns a node set of clasif2 elements (probably just one of them.)
So as stated originally you have to have a template matching classif2
that takes a node parameter and passit on to its children.

><!-- clasif2.xml used above -->
><item ref="405" name="Methodology" level=""> 
><item ref="407" name="models" level="leaf"> </it

If that is really clasif2.xml then it is not well formed and you should
geta fatal error. I'm assuming (although you have not shown it) that
there is a top level classif2 element.

If you want to apply templates to the item elements directly, without
 having a template matching classif2  you need
 <xsl:apply-templates
select="document('../xml/clasif2.xml')/clasif2/item">
                                               ^^^^

Then the template matching item will be passed the nodes parameter but
it can only access it if you declare it as a parameter of the template:

<xsl:template match="item">
 <xsl:param name="nodes"/>
....
--><xsl:value-of select="$nodes"/><--
<xsl:variable name="atri" select="@level"/>


David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

Current Thread