xpath_CountNodes函数
函数名:xpath_XML节点计数 / xpath_CountNodes
会员等级:免费版(Free) - 无需会员即可使用
函数功能
统计匹配指定XPath表达式的节点数量,返回整数结果,适用于XML结构分析、数据量统计、节点完整性校验等场景。
参数规范
| 参数名 | 类型 | 必填 | 示例 | 特殊说明 |
|---|---|---|---|---|
xml | String | 是 | "<books><book/></books>" | XML格式的文本或XML文件路径(自动判断) |
xpath | String | 是 | "//book" | 要统计的节点XPath表达式,需符合XPath 1.0语法 |
使用案例
统计节点总数
问题描述:统计XML中book节点的数量 公式演示:
excel
=xpath_XML节点计数("<books><book/><book/><book/></books>", "//book")输出效果:
text
3按属性条件统计
问题描述:统计category为fiction的book节点数量 公式演示:
excel
=xpath_XML节点计数("<books><book category='fiction'/><book category='history'/><book category='fiction'/></books>", "//book[@category='fiction']")输出效果:
text
2统计嵌套节点
问题描述:统计所有title子节点的数量 公式演示:
excel
=xpath_XML节点计数("<books><book><title/><title/></book><book><title/></book></books>", "//title")输出效果:
text
3统计不存在的节点
问题描述:统计XML中不存在的author节点 公式演示:
excel
=xpath_XML节点计数("<books><book/></books>", "//author")输出效果:
text
0使用文件路径
问题描述:从本地XML文件中统计商品数量 公式演示:
excel
=xpath_XML节点计数("D:\data\products.xml", "//product")输出效果:
text
156技术说明
实现原理
- 加载XML文档后,使用
XPathNavigator.Select()方法执行XPath表达式 - 遍历匹配的节点迭代器并累加计数
- 返回匹配节点的总数(整数类型)
- 异常情况下返回
-1,便于与正常统计结果(0及正整数)区分
与xpath_Evaluate的区别
| 对比项 | xpath_XML节点计数 | xpath_XPath计算 |
|---|---|---|
| 专注场景 | 专门用于节点计数 | 通用XPath表达式计算 |
| 返回类型 | int | object(按结果类型自动判断) |
| 异常返回值 | -1 | 错误提示 |
| 实现方式 | Select()遍历计数 | Evaluate()计算count() |
输入模式自动判断
- 当输入参数以合法文件路径形式提供(如
D:\data\products.xml)时,按文件路径加载XML - 当输入参数以
<开头的XML标签内容时,按XML字符串解析 - 自动判断逻辑确保两种输入方式无缝切换
异常处理
| 错误场景 | 返回值 |
|---|---|
| XML格式不合法 | -1 |
| XPath表达式语法错误 | -1 |
| 文件路径不存在或不可读 | -1 |
| 参数为空或null | -1 |
| 无匹配节点(正常情况) | 0 |
扩展应用
与IF函数结合做数量校验
excel
=IF(xpath_XML节点计数(A1, "//item")>0, "数据有效", "无数据") // A1中为XML字符串批量统计XML文件节点数
配合文件路径单元格引用,可批量统计多个XML文件中目标节点的数量,适用于数据导入校验、接口返回值校验、配置文件结构检查等场景。
注:本函数为免费功能,支持XML字符串和文件路径两种输入方式,在WPS 2019+和Excel 365中测试通过。