如果在XSLT中有条件

时间:2013-11-18 18:23:26

标签: xml xslt

我有一个XML文件,它嵌入到主xml文件中,下面是xml文件格式

<TEST_RESULT>
<MODULE_NAME>CREATE-SETVC-NUM</MODULE_NAME>
<CLASS_NAME>Create</CLASS_NAME>
<NUMBER_OF_PASSED>4</NUMBER_OF_PASSED>
<NUMBER_OF_FAILED>4</NUMBER_OF_FAILED>
<TOTAL_COUNT>8</TOTAL_COUNT>
<CLASS_NAME1>SetVC</CLASS_NAME1>
<NUMBER_OF_PASSED1>4</NUMBER_OF_PASSED1>
<NUMBER_OF_FAILED1>4</NUMBER_OF_FAILED1>
<TOTAL_COUNT1>8</TOTAL_COUNT1>
</TEST_RESULT>

现在我的XSLT文件我需要检查一个条件,当节点<CLASS_NAME><CLASS_NAME1>两个节点都存在时需要执行一些操作,现在我尝试了以下条件

    <xsl:when test="CLASS_NAME and CLASS_NAME1">
    <tr>
    <td rowspan="2" bgcolor = "#E0FFFF"><font face = "courier"><b><xsl:value-of select="MODULE_NAME"/></b></font></td>
    <td bgcolor = "#E0FFFF"><font face = "courier"><b><xsl:value-of select="CLASS_NAME"/></b></font></td>
    <td bgcolor = "#E0FFFF"><font face = "courier"><b><xsl:value-of select="NUMBER_OF_PASSED"/></b></font></td>
    <td bgcolor = "#E0FFFF"><font face = "courier"><b><xsl:value-of select="NUMBER_OF_FAILED"/></b></font></td>
    <td bgcolor = "#E0FFFF"><font face = "courier"><b><xsl:value-of select="TOTAL_COUNT"/></b></font></td>

    </tr>

    <tr>
    <td bgcolor = "#E0FFFF"><font face = "courier"><b><xsl:value-of select="CLASS_NAME1"/></b></font></td>
    <td bgcolor = "#E0FFFF"><font face = "courier"><b><xsl:value-of select="NUMBER_OF_PASSED1"/></b></font></td>
    <td bgcolor = "#E0FFFF"><font face = "courier"><b><xsl:value-of select="NUMBER_OF_FAILED1"/></b></font></td>
    <td bgcolor = "#E0FFFF"><font face = "courier"><b><xsl:value-of select="TOTAL_COUNT1"/></b></font></td>
    </tr>
    </xsl:when>

但这种情况不知道为什么会失败?

2 个答案:

答案 0 :(得分:3)

需要是:

<xsl:choose>
    <xsl:when test="CLASS_NAME and CLASS_NAME1">
    </xsl:when>
</xsl:choose>

或:

<xsl:if test="CLASS_NAME and CLASS_NAME1">
</xsl:if>

答案 1 :(得分:1)

条件检查在XSLT 1.0中有两种类型

  1. xsl如果条件匹配模板,

    <xsl:if test="expr">

    <!-- your code -->

    </xsl:if>

  2. 元素与表达式一起使用并表达多个条件测试。

      `<xsl:choose>
         <xsl:when test="expr">
         <!-- your code -->
        </xsl:when>
    
       <xsl:otherwise>
         <!-- your code -->
       </xsl:otherwise>
    

    `

  3. <强>参考:

    [w3schools.com/xsl/] [zvon.org/comp/r/ref-XSLT_1.html]

    学习xslt zvon是新手的非常好的网站:)