我有一个:XSLT PARAM条件检查
<xsl:param name="SomeFlag" />
在我的XSLT模板,我想要做的SomeFlag条件检查。目前我这样做:
<xsl:if test="$SomeFlag = true"> SomeFlag is true! </xsl:if>
这是我们如何评价国旗?
我设置帕拉姆在C#为:
xslarg.AddParam("SomeFlag", String.Empty, true);
任何想法?
我有一个:XSLT PARAM条件检查
<xsl:param name="SomeFlag" />
在我的XSLT模板,我想要做的SomeFlag条件检查。目前我这样做:
<xsl:if test="$SomeFlag = true"> SomeFlag is true! </xsl:if>
这是我们如何评价国旗?
我设置帕拉姆在C#为:
xslarg.AddParam("SomeFlag", String.Empty, true);
任何想法?
<xsl:if test="$SomeFlag = true">
此测试,如果$SomeFlag
等于名为“真”的元素,这是当前节点的第一个孩子的字符串值。
你想要的是:
<xsl:if test="$SomeFlag = true()">
我同意Dimitre,但有一个加法:
你的情况,你可以使用:
<xsl:if test="$SomeFlag"> SomeFlag is true! </xsl:if>
但我通常当标志应该在XSLT中进行评估时,使用1和0作为布尔标志,特别是当我从属性或元素内容获取值时。
这让我通过转换成数字(然后隐式布尔值),而不是比较字符串字面试验条件:
<xsl:if test="number($SomeFlag)"> SomeFlag is true! </xsl:if>
我从来没有建议比较一个串文字!请阅读我的答案并理解它。另外,请注意,OP会设置要从C#测试的值并使用*布尔值*值!所以,你的加入(虽然通常很有用),并不回答这个问题。 – 2010-05-06 03:36:14
@Dimitre Novatchev:我明白你的答案,我的想法是使用0和1而不是布尔值。因此,如果OP将该值序列化到输入树而不是作为参数传递,则该方法将保持不变。 – newtover 2010-05-06 05:55:05
很好的问题(+1)。 – 2010-05-05 20:24:32