This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: call-template with dynamic parameters


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]