XSL - 在<otherwise>中增加变量

时间:2018-01-15 13:44:10

标签: xslt

我目前正面临一个问题,我需要根据几个检查来增加变量:

我有以下代码进行检查和计算:

    <xsl:variable name="HBB_Nord_Counter" select="0" />

    <xsl:variable name="HBB_N_Check">
        <xsl:choose>
            <xsl:when test="($MUC_HBB_Answered_N_WG_1 = '0') or ($MUC_HBB_SL_N_WG_1 = '0') or ($MUC_HBB_Entered_N_WG_1 = '0')">0</xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="($MUC_HBB_Answered_N_WG_1 * number(translate($MUC_HBB_SL_N_WG_1, ',', '.'))) div ($MUC_HBB_Entered_N_WG_1)" />
            </xsl:otherwise>
        </xsl:choose>
    </xsl:variable>

我已经构建了一个if语句,其中我的变量根据上面提到的增加:

<xsl:variable name="HBB_Nord_Counter_2" >
    <xsl:choose>
        <xsl:when test="$HBB_N_Check &gt; 0">
            <xsl:value-of select="$HBB_Nord_Counter + 1" />
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="$HBB_Nord_Counter" />
        </xsl:otherwise>
    </xsl:choose>
</xsl:variable>

现在的问题是:

如何在代码的第一部分中包含代码的第二部分,以便在满足第二个代码中的条件时,我的变量: HBB_Nord_Counter 增加1。

我需要使用此变量将总和除以它,具体取决于多少个值大于0。

我希望这是可以理解的。

祝你好运, Ionut Sanda

1 个答案:

答案 0 :(得分:0)

在其他编程语言中,变量是 true 变量,即您可以:

  • 最初为他们分配一个值,
  • 然后你可以改变这个值(根据你的意愿多次)。

XSLT 中情况不同:我们称之为变量实际上是 常数。您可以为创建变量分配值,然后为您分配值 无法更改它。

也许您应该计算符合特定条件的源元素? 类似的东西:

<xsl:variable name="cnt" select="count(tagname[condition]"/>

在谓词中替换正确的标记名称和条件。