|
Subject: Re: [xsl] Pass node to template From: "Karl J. Stubsjoen" <karl@xxxxxxxxxxxxx> Date: Tue, 20 May 2003 13:04:38 -0700 |
Scope?
Its still not working, all though I was able to get the suggested change to
the "with-param select" to work but only in a test environment. I am
wondering if I am losing scope. So let me ask this:
Does a variable not have scope inside an xsl:choose block if the variable
was declared outside of this in an xsl:for-each block? So (not syntactily
correct):
<xsl:for-each>
<xsl:variable name="some_variable" select="some_node">
<xsl:choose>
<xsl:when test="....">
<xsl:value-of select="some_variable">
</xsl:when>
</xsl:choose>
</xsl:for-each>
Then, take this one step further and from within the above "choose", call a
template passing this node set. Would this template then loose scope do the
nature of the variable being passed down through scope (like the above
example)?
Karl
----- Original Message -----
From: "Michael Kay" <mhk@xxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Tuesday, May 20, 2003 12:41 PM
Subject: RE: [xsl] Pass node to template
> <xsl:value-of> extracts the string value of a node; you want to pass the
> node itself.
>
> Instead of
>
> <xsl:with-param name="nodEdit"><xsl:value-of select="$EDITPROP"
> /></xsl:with-param>
>
> you want
>
> <xsl:with-param name="nodEdit" select="$EDITPROP" />
>
> Michael Kay
>
>
> > -----Original Message-----
> > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
> > Karl J. Stubsjoen
> > Sent: 20 May 2003 16:30
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: [xsl] Pass node to template
> >
> >
> > Hello,
> >
> > I am having difficulties passing a node to a named template.
> > Similar tests on the node (as a variable) work fine inline
> > where it was created. However, trying to pass it to a named
> > template and then performing identical steps yields the error:
> >
> > msxml4.dll error '80004005'
> > Reference to variable or parameter 'nodEdit' must evaluate to
> > a node list.
> >
> > Here is where I set my node variable:
> >
> > <xsl:variable name="EDITPROP" select="EDITPROPS"/>
> > <xsl:value-of select="$EDITPROP/@type"/>
> >
> > <!-- (notice the value-of, it my test and it works perfect) -->
> >
> >
> > Here is my call ($EDITPROP is the node):
> >
> > <xsl:call-template name="MAKE_INPUT_BOX">
> > <xsl:with-param
> > name="input_name"><xsl:value-of select="$innerFLD"/></xsl:with-param>
> > <xsl:with-param
> > name="input_value"><xsl:value-of select="$currentVAL"
> > /></xsl:with-param>
> > <xsl:with-param name="nodEdit"><xsl:value-of
> > select="$EDITPROP" /></xsl:with-param>
> > </xsl:call-template>
> >
> > Here is the beginning part of my template that fails:
> > <xsl:template name="MAKE_INPUT_BOX"> <xsl:param
> > name="input_name"/> <xsl:param name="input_value"/>
> > <xsl:param name="nodEdit"/>
> >
> > <xsl:value-of select="$nodEdit/@type"/>
> >
> > <!-- (this value-of causes an error) -->
> >
> > So what am I doing wrong?
> > Thanks for the help.
> > Karl
> >
> >
> > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
> >
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Pass node to template, Michael Kay | Thread | Re: [xsl] Pass node to template, Karl J. Stubsjoen |
| RE: [xsl] XSLT 2.0 and external par, Michael Kay | Date | Re: [xsl] Re: XSL-List Digest V4 #1, J.Pietschmann |
| Month |