如何在xsl中检查多个条件:if在xslt1.0中

时间:2016-06-23 13:43:53

标签: xslt xslt-1.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 :(得分:1)

您的模板需要将参数命名为codeboolean。您使用名为OccupationAgent的参数调用它。模板忽略这些参数并对其自身参数的默认值进行操作(在您的示例中为空值)。