<xsl:variable name="a">20</xsl:variable>
<xsl:variable name="b">10</xsl:variable>
<xsl:if test="($a) > ($b)">
------
</xsl:if>
我在if条件中遇到错误..
答案 0 :(得分:6)
尝试以下方法:
<xsl:if test="$a > $b">
尝试将字符实体用于&gt; (&amp; gt;)和&lt;表达式中的(&amp; lt;)运算符,否则某些解析器会认为您正在提前关闭标记,或者打开另一个标记。
答案 1 :(得分:5)
您发布的示例应该有效。但是,在你的情况下,你不应该这两个变量都是string类型,它们的长度不同会产生令人惊讶的结果。不同数据类型的比较运算符的行为在xpath spec on booleans。
中指定为避免这种情况,您可以使用select
属性声明变量,也可以手动将其转换为number进行比较:
<xsl:variable name="a" select="20"/>
<xsl:variable name="b" select="10"/>
...
<xsl:if test="number($a) > number($b)">
</xsl:if>