xpath_Exists函数
函数名:xpath_XPath节点存在 / xpath_Exists
会员等级:免费版(Free) - 无需会员即可使用
函数功能
检查指定的XPath节点是否存在于XML文档中,返回布尔值TRUE或FALSE,适用于XML结构校验、条件判断等场景。
参数规范
| 参数名 | 类型 | 必填 | 示例 | 特殊说明 |
|---|---|---|---|---|
xml | String | 是 | "<books><book/></books>" | XML格式的文本或XML文件路径(自动判断) |
xpath | String | 是 | "//book" | 要检查的XPath表达式,需符合XPath 1.0语法规范 |
使用案例
检查节点是否存在
问题描述:验证XML文档中是否存在book节点 公式演示:
excel
=xpath_XPath节点存在("<books><book id='1'/><book id='2'/></books>", "//book")输出效果:
text
TRUE检查不存在的节点
问题描述:查找XML中不存在的author节点 公式演示:
excel
=xpath_XPath节点存在("<books><book id='1'/></books>", "//author")输出效果:
text
FALSE基于属性条件检查
问题描述:检查是否存在id为2的book节点 公式演示:
excel
=xpath_XPath节点存在("<books><book id='1'/><book id='2'/></books>", "//book[@id='2']")输出效果:
text
TRUE使用文件路径
问题描述:从本地XML文件中检查节点是否存在 公式演示:
excel
=xpath_XPath节点存在("D:\data\books.xml", "//book[@category='fiction']")输出效果:
text
TRUE技术说明
实现原理
- 加载XML文档后,使用
XPathNavigator.Select()方法执行XPath表达式 - 判断返回的节点迭代器中是否存在匹配节点
- 存在匹配节点则返回
TRUE,否则返回FALSE - 支持XPath 1.0语法规范,包括节点选择、属性过滤、条件谓词等
输入模式自动判断
- 当输入参数以合法文件路径形式提供(如
D:\data\books.xml)时,按文件路径加载XML - 当输入参数以
<开头的XML标签内容时,按XML字符串解析 - 自动判断逻辑确保两种输入方式无缝切换
异常处理
| 错误场景 | 返回值 |
|---|---|
| XML格式不合法 | FALSE |
| XPath表达式语法错误 | FALSE |
| 文件路径不存在或不可读 | FALSE |
| 参数为空或null | FALSE |
扩展应用
与IF函数结合做条件判断
excel
=IF(xpath_XPath节点存在(A1, "//error"), "存在错误节点", "校验通过") // A1中为XML字符串批量校验多个XML文件
配合文件路径单元格引用,可批量检查多个XML文件是否包含目标节点,适用于配置文件校验、数据完整性检查等场景。
注:本函数为免费功能,支持XML字符串和文件路径两种输入方式,在WPS 2019+和Excel 365中测试通过。