[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: call-template with dynamic parameters

Subject: Re: call-template with dynamic parameters
From: Joerg Heinicke <joerg.heinicke@xxxxxx>
Date: Wed, 03 Jul 2002 23:12:52 +0200
xsl dynamic parameter
Hello Saied,

I don't understand exactly, what you want to reach, but let me explain some things.

<xsl:variable name="path" select="/Kartenauftrag/Kundendaten/Privatkunde/Title">
<xsl:choose>
<xsl:when test="$path">
...
</xsl:when>
<xsl:otherwise>
...
</xsl:otherwise>
</xsl:choose>
</xsl:variable>


You can not assign a value to the variable via select and via the "content" of <xsl:variable>content</xsl:variable>. You have to choose one. If you have the first one with select, a node set is stored in the variable (or a string), otherwise a result tree fragment (RTF).

Maybe you want the following:

<xsl:variable name="path" select=".. same as above .."/>

<xsl:call-template name="table-cell">
  <xsl:with-param name="no_cell" select="15"/>
  <xsl:with-param name="word" select="$path"/>
</xsl:call-template>

If $path is empty because there are no /Kartenauftrag/Kundendatan/Privatkunde/Titel elements, an empty node set is passed to the next template "table-cell". You called the param $word, so I assume you don't want to have a node set but a string. You can reach this by using string() either at

<xsl:variable name="path" select="string(.. same as above ..)"/>

or at

<xsl:with-param name="word" select="string($path)"/>

In the template "table-cell" there must be a <xsl:param name="word"/>, otherwise you can't access the passed param value. If you add a select, you can give word a default value, e.g. select="''" as empty string or a special one.

Now is the question what you want to do exactly.

Regards,

Joerg

Saied Gerami wrote:
Hi all,

I tried to call a template with dynamic variables as follows:

<xsl:variable name="path"
select="/Kartenauftrag/Kundendaten/Privatkunde/Title">
	<xsl:choose>
  	<xsl:when test="$path">
			<xsl:call-template name="table-cell">
				<xsl:with-param name="no_cell"
select="15"/>
				  <xsl:with-param name="word">
					<xsl:value-of select="$path"/>
				</xsl:with-param>
			</xsl:call-template>
  	</xsl:when>
  	<xsl:otherwise>
			<xsl:call-template name="table-cell">
				<xsl:with-param name="no_cell"
select="15"/>
			</xsl:call-template>
  	</xsl:otherwise>
	</xsl:choose>
</xsl:variable>

but it doesn't work. Apparanty <xsl:variable> prevents any output. Any
suggestions for calling a template with or without a definite parameter.

Notice that <xsl:if> or <xsl:when> are not allowed in <xsl:parameters> o

What should I do?

Thanx


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.