Skip to content

xpath_CountNodes函数

函数名:xpath_XML节点计数 / xpath_CountNodes

会员等级:免费版(Free) - 无需会员即可使用

函数功能

统计匹配指定XPath表达式的节点数量,返回整数结果,适用于XML结构分析、数据量统计、节点完整性校验等场景。

参数规范

参数名类型必填示例特殊说明
xmlString"<books><book/></books>"XML格式的文本或XML文件路径(自动判断)
xpathString"//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表达式计算
返回类型intobject(按结果类型自动判断)
异常返回值-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中测试通过。

基于源代码最新版本文档