如何将值重新分配给先前分配的变量?我需要它像这样工作:

<xsl:variable name="variable2" select="'N'" />
....
<xsl:when test="@tip = '2' and $variable2 != 'Y'">
    <xsl:variable name="variable2" select="'Y'" />
</xsl:when>

最佳答案

XSLT中的变量只能分配一次值。这是设计使然。有关总体动机的理解,请参见Why Functional languages?

与其重新分配变量,不如直接针对输入文档编写条件语句,或使用变化的局部参数递归调用函数(或命名模板)。

您需要做的任何事情都可以使用不需要重新分配变量的方法来完成。要获得更具体的答案,请提供更具体的问题。

也可以看看:

  • In XSLT how do I increment a global variable from a differentscope?
  • Increment a value in XSLT
  • Use recursion effectively in XSL
  • 10-08 09:01