XPath节点存在
函数名:xpath_XPath节点存在 / xpath_Exists
功能描述
检查指定的 XPath 节点是否存在于 XML 文档中,返回布尔值 TRUE 或 FALSE,适用于 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 |
| 参数为空或 null | FALSE |
| 无匹配节点 | FALSE |