我正在研究XSLT 1.0版本我声明了一个int变量,当一个(如果条件)条件为true时,它必须增加。 那么有谁能告诉我如何将变量或任何解决方案增加到那个?
e.g。
<xsl:variable name="count" select="-1" />
是声明的变量。然后我就检查了一个条件
<xsl:if test="$serviceP=$new">
// if condition id true the i have to increment the variable value (i.e count).
//and again have compare that count varibale value in if condition
<xsl:if test="$count < 2">
// runs when condition is true.
</xsl:if>
</xsl:if>
提前感谢。
答案 0 :(得分:2)
XSLT是一种函数式语言,因此具有不可变的变量 - 一旦分配,其内容就无法更改。
你需要在程序上停止思考。解释你的问题,许多人会告诉你如何在不增加任何变量的情况下解决这个问题。
例如,解决方案可以像这样简单:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/*">
Latest Service:
<xsl:apply-templates select="service[@new='true'][1]"/>
New Services:
<xsl:apply-templates select="service[@new='true'][position() >1]"/>
</xsl:template>
</xsl:stylesheet>
在更复杂的情况下,您可以编写一个递归调用自身的模板,传递一个特定参数,其值大于当前模板调用中的值。