根据另一个变量的值在 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。
提前感谢您的帮助
您可以使用 true
或 false
的简单比较,后者将由 number()
函数转换为 1
或 0
:
<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 结构,但您没有在示例中指定默认值。如果您需要更复杂的方法,您可以返回到您针对每个变量 a
、b
和 c
.
提到的 xsl:choose
方法
我需要做的是根据定义变量的值创建不同的变量(变量名)。由于我是 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。
提前感谢您的帮助
您可以使用 true
或 false
的简单比较,后者将由 number()
函数转换为 1
或 0
:
<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 结构,但您没有在示例中指定默认值。如果您需要更复杂的方法,您可以返回到您针对每个变量 a
、b
和 c
.
xsl:choose
方法