加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – 如何创建一个布尔值?

发布时间:2020-12-16 08:15:35 所属栏目:百科 来源:网络整理
导读:我对XSLT完全陌生,无法解决我在下面的代码错误。 xsl:variable name="var" select="boolean('false')"/xsl:if test="$var'"variable is true/xsl:if 它总是返回true,当它是假的。为什么? $ var变量的值定义如下: xsl:variable name =“var”select =“b
我对XSLT完全陌生,无法解决我在下面的代码错误。
<xsl:variable name="var" select="boolean('false')"/>

<xsl:if test="$var'">variable is true</xsl:if>

它总是返回true,当它是假的。为什么?

$ var变量的值定义如下:

< xsl:variable name =“var”select =“boolean('false')”/>

真正()

这是因为在XPath中“false”是一个普通的字符串,而不是false(),这是布尔值的构造函数false()

XPath中的两个布尔值(注意它们是构造的!):

true()和false()

将任何值转换为布尔值的细节在XPath Spec中拼写出来:

boolean函数将其参数转换为布尔值,如下所示:

>一个数字是真的,如果且仅当它
不为正或负零
也不是NaN
>节点集是真实的,如果且仅当它
是非空的
>一个字符串是真的,如果且仅当它的
长度不为零
>除了四种基本类型之外的类型的对象以取决于该类型的方式被转换为布尔值
“。

在你的情况下,字符串“false”不是数字0,并且具有正长度,因此应用上面第三个项目中的规则,得到true()。

因此,要在XSLT 1.0中定义一个变量,其值为false(),需要将定义写为以下内容:

< xsl:variable name =“vMyVar”select =“false()”/>

或者,如果你不记得这一点,你可以总是写:

< xsl:variable name =“vMyVar”select =“1 = 0”/>

(指定评估为false()的任何表达式),XSLT处理器将为您完成工作。

在XSLT 2.0中,最好明确指定变量的类型:

< xsl:variable name =“vMyVar”as =“xs:boolean”select =“false()”/>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读