xsl-list
[Top] [All Lists]

Re: value of variable inside a condition doesn't work?

2003-01-28 12:20:45
Hello Hubert,

you have two errors in your code:

Hubert Holtz wrote:
Hy,

first of all I know there is this <i18n> thing to make multilanguage sites, but 
that's not the topic.

I have enabled xslt-with-parameter in my sitemap, in my xsl file i have a 
global parameter 'lang' this is the parameter which should
contain the value of the equal url-parameter, so far so good.

Now I want to output text fragments in 2 languages, depending on this 
parameter, so I thought of sth. like this:

-- code --

<xsl:if test="($lang)='1' ">
    <xsl:variable name="stadt" select="Stadt"/>
     <xsl:variable name="Texteingabe" select="Hier Text eingeben"/>
    <xsl:variable name="berichtstatus" select="aktuell"/>
</xsl:if>

<xsl:if test="($lang)='2' ">
    <xsl:variable name="stadt" select="city"/>
    <xsl:variable name="Texteingabe" select="Please enter text"/>
    <xsl:variable name="berichtstatus" select="current"/>
</xsl:if>

The variables are out of scope. In scope means they are only used in descendants of its parent. So outside your <xsl:if/> they are out of scope.

Change it to:

<xsl:variable name="stadt">
  <xsl:if test="$lang=1">city</xsl:if>
</xsl:variable>

With this approach you don't make the second error.
<xsl:variable name="stadt" select="city"/> means, that you are searching for the text value of a child node with name 'city'. But you want a string, which must be written as select="'city'"/>.

With my above solution you have a result tree fragment in your variable, that is converted into a string when using <xsl:value-of select="$stadt"/>.

Regards,

Joerg

<td><xsl:value-of select="$stadt"/></td>

-- code --


But I get an error message, that there is no 'stadt' variable, if I delete the 
<xsl.if> part then there is no error message, but then I can't change the
value of the variable depending on the 'lang' paramter, of course.

So could it be that variables can't be set in an if statement and if that's 
true what would be the solution?


thanks
Homer30


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