gpt4 book ai didi

xslt - xpath:number 为 "0"返回 false

转载 作者:行者123 更新时间:2023-12-03 15:34:46 25 4
gpt4 key购买 nike

我有一个 xsl:variable它可以是空字符串或数字。所以我是这样评价的:

<xsl:if test="number($var)"><node att="{number($var)}" /></xsl:if>

如果 var,这有效是空字符串,但如果 var 也有同样的效果是 0 :

从 -2 到 2:
<node att="-2" />
<node att="-1" />
<node att="1" />
<node att="2" />

这是一个错误吗?是否有不同版本的 number也捕获 0 的函数?我真的要加 or $var = '0'吗?到我的 test陈述?

最佳答案

这完全符合 XPath specification :

根据定义 boolean(0)false()
你想要 :

<xsl:if test="number($var) = number($var)">
<node att="{number($var)}" />
</xsl:if>

说明 :
number($x) = number($x)

true() 可转换为数字时,它就是 $x

如果 $x 不能转换为数字,则上述比较的两边都计算为 NaN ,并且根据定义 NaN 不等于任何值,包括 NaN

注意:

如果您想检查 $var 是否为整数,请使用:
<xsl:if test="floor($var) = $var">
<node att="{$var}" />
</xsl:if>

或者,或者:
<xsl:if test="not(translate($var, '0123456789', ''))">
<node att="{$var}" />
</xsl:if>

关于xslt - xpath:number 为 "0"返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10367749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com