如何检查xsl中哪个变量更大?

时间:2012-02-01 14:31:46

标签: xslt

   <xsl:variable name="a">20</xsl:variable>
    <xsl:variable name="b">10</xsl:variable>

      <xsl:if test="($a) > ($b)">
        ------
  </xsl:if>

我在if条件中遇到错误..

2 个答案:

答案 0 :(得分:6)

尝试以下方法:

 <xsl:if test="$a &gt; $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>