根据另一个变量的值在 XSLT 中创建变量

Create variable in XSLT based on value of another variable

我需要做的是根据定义变量的值创建不同的变量(变量名)。由于我是 XSLT 的初学者,所以我不太确定该怎么做。基本想法是有类似

的东西

foo 已定义并且可以具有值 1 或 2 或 4

if (foo == 1):
    a = 1
elif (foo == 2):
    b = 1
elif (foo == 4):
    c = 1

我需要创建不同变量的原因是这些变量将用作 pystache 从 mustache 模板生成文件的条件。

我为 xsl 找到的所有资源都是如何使用 choose 语法分配不同的值,而不是如何有条件地创建不同的变量。 XML 版本为 1.0。

提前感谢您的帮助

您可以使用 truefalse 的简单比较,后者将由 number() 函数转换为 10

<xsl:variable name="foo" select="2"/>
<xsl:variable name="a" select="number($foo = 1)"/>
<xsl:variable name="b" select="number($foo = 2)"/>
<xsl:variable name="c" select="number($foo = 4)"/>
<xsl:value-of select="concat('a=',$a,'; b=',$b,' c=',$c)"/>

这个样本的输出是

a=0; b=1 c=0

它不完全是一个 IF-THEN-ELSE 结构,但您没有在示例中指定默认值。如果您需要更复杂的方法,您可以返回到您针对每个变量 abc.

提到的 xsl:choose 方法