我想做以下事情:
XSL说我不能两次声明变量,那么我该怎么做才能改进这一步呢?
另一种方法是检查是否设置了变量。我这样做了,因为我跳过了第一步并在if语句中声明了变量。在另一个if语句中,我想检查变量是否存在。
答案 0 :(得分:5)
如果您提到了您认为需要“覆盖变量”的示例代码,那么任何像Tomalak,Dimitre这样的专家都会向您建议更好的(替代)选项/建议。
好。如果它只是你的问题(就像人们如何处理变量无法改变的语言那样!!! ??)那么我打赌你会在练习时得到澄清......
当我作为初学者使用XSLT开始我的运营商时,即使我有同样的问题......但很快我就意识到了...... 我们不需要变量来改变。 ;);)
我觉得很高兴与XSLT合作
您可以按照处理函数和过程的方式处理模板。 (不精确)
你可以递归地调用它们。
你可以想象的数据操作程度,可以通过一种或另一种方式实现..(可能并不容易,但并非不可能至少)..
回到你的问题,如果你真的需要改变变量的值..那么随意定义一个新的变量..!?使用数学运算符,内置函数等对前一个变量的值,而不是分配回同一个变量..将其分配给一个新的..并根据需要使用它。
这可能不是有效的技术,但可以是步骤1.
另一方面..你可以将表达式.. [like translate(., abc, ABC)
]作为参数(Param)发送到其他模板..或者可以直接写为输出.. !!以免变量变化。 :))
答案 1 :(得分:2)
正如您所发现的,xslt标准需要following:
绑定会影响另一个绑定 绑定发生在一个点 另一个绑定是可见的,而且 绑定具有相同的名称。它是一个 如果绑定建立的错误 xsl:variable或xsl:param元素 在模板内阴影另一个 由xsl:variable建立的绑定 或xsl:param元素也在 模板。如果a不是错误 由xsl:variable建立的绑定 或模板中的xsl:param元素 阴影另一个绑定建立 一个xsl:variable或xsl:param顶级 元件。
这里的解决方案取决于你真正想做的事情。
答案 2 :(得分:1)