Skip to content

XPath节点存在

函数名:xpath_XPath节点存在 / xpath_Exists

功能描述

检查指定的 XPath 节点是否存在于 XML 文档中,返回布尔值 TRUEFALSE,适用于 XML 结构校验、条件判断等场景。

会员等级:🟢 免费版(Free)

语法

excel
=xpath_XPath节点存在(XML字符串或文件路径, XPath表达式)

参数

参数名类型必填默认值说明
XML字符串或文件路径String-XML 格式的文本或 XML 文件路径(自动判断:若为已存在的文件路径则读取文件内容,否则作为 XML 字符串处理)
XPath表达式String-要检查的 XPath 表达式,需符合 XPath 1.0 语法

返回值

Boolean - 存在匹配节点时返回 TRUE,不存在或发生任何异常时返回 FALSE

使用示例

检查节点是否存在

公式

excel
=xpath_XPath节点存在("<books><book id='1'/><book id='2'/></books>","//book")

结果

TRUE

检查不存在的节点

公式

excel
=xpath_XPath节点存在("<books><book id='1'/></books>","//author")

结果

FALSE

基于属性条件检查

公式

excel
=xpath_XPath节点存在("<books><book id='1'/><book id='2'/></books>","//book[@id='2']")

结果

TRUE

使用文件路径

公式

excel
=xpath_XPath节点存在("D:\data\books.xml","//book[@category='fiction']")

结果

TRUE

技术说明

  • 通过 GetXmlContent 自动判断输入:若 File.Exists(input) 为真则读取文件全部文本,否则将输入作为 XML 字符串处理。
  • 使用 XmlDocument.LoadXml 加载 XML,再通过 XPathNavigator.Select 执行表达式。
  • 判断返回的 XPathNodeIterator.Count 是否大于 0:大于 0 返回 TRUE,否则返回 FALSE
  • 支持 XPath 1.0 语法,包括节点选择、属性过滤、条件谓词等。
  • 任何异常(XML 格式错误、XPath 语法错误、文件不可读等)均被捕获并返回 FALSE

错误处理

错误场景返回值
XML 格式不合法FALSE
XPath 表达式语法错误FALSE
文件路径不存在或不可读(作为字符串解析失败时)FALSE
参数为空或 nullFALSE
无匹配节点FALSE

基于源代码最新版本文档