2011-09-28 84 views
4

我想在XSL中定義一個名爲'category'的變量,爲它分配一個值,然後在我的代碼中重複使用該變量。 if objecttype = 1變量值應該是'car' if objecttype = 2變量值應該是'bus'如何定義一個XSL變量並在xsl中分配一個值:選擇

我該如何做到這一點?

<xsl:template match="/"> 
<html> 
<head><style type="text/css">body{font-size:11px;font-family:Verdana;}</style></head> 
<body> 
Dear 
<xsl:for-each select="user"> 
<xsl:value-of select="firstname"/><xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text> 
<xsl:if test="middlename != ''"> 
<xsl:value-of select="middlename"/><xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text> 
</xsl:if> 
</xsl:for-each> 
<xsl:value-of select="user/lastname"/>,<br/> 
<br/> 
You have created a company listing for "<xsl:value-of select="user/objecttitle"/>".<br/> 
<br/> 
Did you know Google uses the number of Facebook 'likes' for webpages in its rankings?<br/> 
You can like you page here: 
<xsl:for-each select="user"> 
<xsl:variable name="category"> 
    <xsl:choose> 
     <xsl:when test="objecttype='1'">car</xsl:when> 
     <xsl:when test="objecttype='2'">bus</xsl:when> 
    </xsl:choose> 
</xsl:variable> 
</xsl:for-each> 
<a href="http://www.mydomain.com/{$category}/{user/objectid}/{user/objecturl}">Click here to go to your company listing now.</a><br/> 
Kind regards,<br/> 
<br/> 
<br/> 
</body> 
</html> 
</xsl:template> 

回答

5

這是XSL新手的常見錯誤。正確的方法是:

<xsl:variable name="category"> 
    <xsl:choose> 
    <xsl:when test="objecttype='1'">car</xsl:when> 
    <xsl:when test="objecttype='2'">bus</xsl:when> 
    ... etc 
    </xsl:choose> 
</xsl:variable> 

在您的示例中,變量是<xsl:when...>標記的本地變量。

+0

好吧,所以我嘗試了以下兩件事情,但我如何檢索變量的值? {$類別}似乎沒有工作... 1. <的xsl:for-每個選擇= 「用戶」> 的 車 的總線 的 2. 的 總線 Flo

+0

任何人都可以幫助我解決這個問題嗎? – Flo

+0

你必須展開你的文章,以包含你如何使用它的例子。編輯您的帖子並使用變量添加完整的簡化示例樣式表。 –