2016-06-23 82 views
-1

我有一個基於條件匹配的以下模板,值應該改變。如何檢查xsl中的多個條件:if in xslt1.0

<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output indent="yes" version="1.0" encoding="UTF-8" method="xml"/> 

    <xsl:template match="text()" name="create"> 
     <xsl:param name="code"/> 
     <xsl:param name="boolean"/> 

     <xsl:if test="$boolean= 'True'"> 
      <xsl:value-of select="'Services'"/> 
     </xsl:if> 

     <xsl:if test="$code=7"> 
      <xsl:value-of select="'Accounts'"/>    
     </xsl:if> 
    </xsl:template> 

</xsl:stylesheet> 

在此,第一個條件起作用。如果我通過boolean = false,則不會分配任何內容。如果它等於True,則分配Services。但是對於代碼,即使我通過7,它也沒有被分配。我試着用單引號也條件

<xsl:if test="$code='7'"> 

我打電話這樣

 <xsl:variable name="Category"> 
     <xsl:call-template name="create"> 
      <xsl:with-param name="code" select="s0:Code"/> 
      <xsl:with-param name="boolen" select="'True'"/> 
     </xsl:call-template> 
     </xsl:variable> 

S0:代碼是具有價值7 任何幫助,將不勝感激元素名稱。

+1

您的問題無法使用您的代碼進行復制。 –

+0

我測試了'boolean ='True''和'code = 7'作爲參數,輸出是'ServicesAccounts' - 正如預期的那樣。 – zx485

+0

已更新代碼 – user3331421

回答

1

您的模板需要將參數命名爲codeboolean。您使用名爲OccupationAgent的參數調用它。該模板將忽略這些參數並使用其自己的參數(在您的示例中爲空值)的默認值進行操作。

+0

我認爲參數名稱不應該是一個問題。它會接受它。我改變了它,並嘗試。然後也不工作。 – user3331421

+0

@ user3331421「不工作」不是我能迴應的。請編輯您的問題併發布**完整**和**可重現的**示例,包括XML輸入 - 請參閱[mcve]。 –