XPath函数——布尔型函数
布尔型函数是用于操作布尔型数据的函数,常有的有boolean(),ture(),false(),not(),lang().
1、boolean()
boolean(xpathExpression)函数用于将参数xpathExpression值转换为布尔型。对应数值型,如果数值等于0,boolean()函数返回false,其他返回true;对于节点如果节点存在返回true,否则返回false。
简单示例:
xml:
-
<?xml version="1.0" encoding="UTF-8"?> <numbers> <number>-1</number> <number>0</number> <number>0.1</number> <number>1</number> <number>2.1</number> <number>abc</number> </numbers>
xslt:
-
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" version="1.0" encoding="gb2312" indent="yes"/> <xsl:template match="/numbers"> <xsl:for-each select="number"> <xsl:value-of select="concat('convert ',.,' to boolean:',boolean(number())) "/> <xsl:text>
</xsl:text> </xsl:for-each> <xsl:value-of select="concat('convert element number to boolean:',boolean(number)) "/> <xsl:text>
</xsl:text> <xsl:value-of select="concat('convert element noexistele to boolean:',boolean(noexistele)) "/> </xsl:template> </xsl:stylesheet>
结果:
-
convert -1 to boolean:true convert 0 to boolean:false convert 0.1 to boolean:true convert 1 to boolean:true convert 2.1 to boolean:true convert abc to boolean:false convert element number to boolean:true convert element noexistele to boolean:false
2、true()
true()函数用于返回布尔型的true,无参数。
3、false()
false()函数用于返回布尔型的false,无参数。
4、not()
not(xpathExpression)函数用于返回XPath表达式所代表的布尔值的相反值。
简单示例:
xml:
-
<?xml version="1.0" encoding="UTF-8"?> <root><element/></root>
xslt:
-
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" version="1.0" encoding="gb2312" indent="yes"/> <xsl:template match="/root"> <xsl:value-of select="concat('not(element) is:',not(element)) "/> <xsl:text>
</xsl:text> <xsl:value-of select="concat('not(noexistele) is:',not(noexistele)) "/> </xsl:template> </xsl:stylesheet>
结果:
-
not(element) is:false not(noexistele) is:true
5、lang()
lang(string)函数用于判断上下文节点的xml:lang属性是否等于参数string。如果上下文节点没有设置xml:lang属性,lang()将按照上下文节点的最近祖先节点继承,如果都没有则返回false;lang()函数不对上下文的节点内容进行判断,只是判断其xml:lang属性;在比较的时候,不区分大小写。
简单示例:
xml:
-
<?xml version="1.0" encoding="UTF-8"?> <article> <title xml:lang="en">the article title</title> <para xml:lang="zh-cn">文章段落</para> <para xml:lang="FFF">文章段落</para> </article>
xslt:
-
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" version="1.0" encoding="gb2312" indent="yes"/> <xsl:template match="/article"> <xsl:apply-templates select="title"/> <xsl:apply-templates select="para"/> </xsl:template> <xsl:template match="title"> <xsl:value-of select="lang('en')"/> <xsl:text>
</xsl:text> </xsl:template> <xsl:template match="para"> <xsl:value-of select="lang('zh-cn')"/> <xsl:text>
</xsl:text> </xsl:template> </xsl:stylesheet>
结果:
-
true true false
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器