xpath_XPath节点存在函数
函数名:wb_XPath节点存在 / xpath_Exists
函数功能
检查指定的XML文档中是否存在符合XPath表达式的节点,适用于XML内容验证和结构分析。
参数规范
| 参数名 | 类型 | 必填 | 示例 | 特殊说明 |
|---|---|---|---|---|
XML字符串或文件路径 | String | 是 | "C:\\data\\example.xml" 或 "<root><name>Excel</name></root>" | 可以是直接的XML文本或本地文件路径 |
XPath表达式 | String | 是 | "/root/name" | 标准XPath 1.0语法 |
使用案例
XML文件节点存在性验证
问题描述:判断XML文件中是否存在/customer/name节点
公式演示:
excel
=xpath_Exists("C:\\data\\customer.xml", "/customer/name")输出效果:
text
TRUE 或 FALSE直接XML文本检查
问题描述:确认XML字符串中是否存在特定XPath路径
公式演示:
excel
=xpath_Exists("<books><book><title>Excel</title></book></books>", "/books/book/title")输出效果:
text
TRUE技术说明
XML读取逻辑
- 若参数为文件路径,函数将尝试读取本地XML文件内容。
- 若为直接文本,则直接解析字符串。
XPath解析方式
- 使用
System.Xml.XPath.XPathNavigator和XPathNodeIterator检查节点是否存在。 - 支持XPath 1.0标准表达式,如
/root/child、//item[@id='1']等。
异常处理
| 错误场景 | 返回值 |
|---|---|
| XML无法解析 | FALSE |
| 文件路径不存在 | FALSE |
| 非法XPath表达式 | FALSE |
| 参数为空 | FALSE |
扩展应用
结合条件判断使用
excel
=IF(xpath_Exists(A1, "//error"), "存在错误节点", "无错误")自动化XML校验
excel
=xpath_Exists("C:\\data\\config.xml", "//setting[@name='timeout']")输出示例:
text
TRUE注:本函数在WPS 2019+和Excel 365中测试通过