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

use*_*464 7 xslt

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

      <xsl:if test="($a) > ($b)">
        ------
  </xsl:if>
Run Code Online (Sandbox Code Playgroud)

我在if condion中得到错误..

Gor*_*ram 7

请尝试以下方法:

 <xsl:if test="$a &gt; $b">
Run Code Online (Sandbox Code Playgroud)

尝试在表达式中使用>(>)和<(<)运算符的字符实体,否则一些解析器会认为您提前关闭标记,或者打开另一个标记.


Jör*_*ann 5

您发布的示例应该有效.但是,在你的情况下,你不应该这两个变量都是string类型,它们的长度不同会产生令人惊讶的结果.比较运算符在不同数据类型上的行为在布尔值xpath规范中指定.

为避免这种情况,您可以使用select属性声明变量或手动将它们转换为数字以进行比较:

<xsl:variable name="a" select="20"/>
<xsl:variable name="b" select="10"/>
...
<xsl:if test="number($a) > number($b)">
</xsl:if>
Run Code Online (Sandbox Code Playgroud)