当前位置:  开发笔记 > Android > 正文

如何创建布尔值?

如何解决《如何创建布尔值?》经验,为你挑选了3个好方法。

我是XSLT的新手,无法解决以下代码出错的问题.



variable is true

当它意味着虚假时,它总是返回真实.为什么?



1> Dimitre Nova..:

$ var变量的值定义如下:

   

   true()

这是因为在XPath中" false"是一个普通的字符串,而不是false(),它是boolean值的构造函数false()

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

   true()false()

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

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

当且仅当它既不是正零或负零也不是NaN时,数字为真

当且仅当它是非空的时,节点集才为真

当且仅当其长度为非零时,字符串才为真

除了四种基本类型之外的类型的对象将以依赖于该类型的方式转换为布尔值"

在您的情况下,字符串"false"不是数字0并且具有正长度,因此应用上面第3个子弹中的规则,屈服true().

因此,要在XSLT 1.0中定义其值为的变量 false(),需要将定义写为如下:

   

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

   

(指定任何求值的表达式false()),XSLT处理器将为您完成工作.

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

   



2> Yuval Adam..:

你正在使用的boolean()函数确实在做它的工作.要使用显式的true和false值,您应该使用以下函数:



仅供参考,根据MSDN文档,boolean()返回以下内容:

如果参数是负数或正数,则将其转换为布尔值true.

如果参数为零或NaN值,则将其转换为false.

如果参数是非空节点集,则将其转换为true.空节点集将转换为false.

如果参数是非空字符串,则将其转换为true.空字符串将转换为false.

如果参数是四种基本类型以外的类型的对象,则它将以依赖于该类型的方式转换为布尔值.


@Tomalak,看到我的回答.它更详细一些,并引用了真正的来源:W3C XPath规范,而不是"MSDN".

3> 小智..:

也许在这个阶段有点晚了,但是对付布尔人并不值得付出努力.下面是我如何处理从DB返回的布尔值(强制性):

                     
    
      
        Mandatory
      
                 
      
    

希望这有助于某人

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有