XML节点计数
函数名:xpath_XML节点计数 / xpath_CountNodes
功能描述
统计匹配指定 XPath 表达式的节点数量,返回整数结果,适用于 XML 结构分析、数据量统计、节点完整性校验等场景。
会员等级:🟢 免费版(Free)
语法
excel
=xpath_XML节点计数(XML字符串或文件路径, 节点XPath)参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| XML字符串或文件路径 | String | 是 | - | XML 格式的文本或 XML 文件路径(自动判断:若为已存在的文件路径则读取文件内容,否则作为 XML 字符串处理) |
| 节点XPath | String | 是 | - | 要统计的节点 XPath 表达式,需符合 XPath 1.0 语法 |
返回值
Int - 匹配的节点数量。无匹配节点时返回 0;发生任何异常时返回 -1(用于与正常结果 0 及正整数区分)。
使用示例
统计节点总数
公式:
excel
=xpath_XML节点计数("<books><book/><book/><book/></books>","//book")结果:
3按属性条件统计
公式:
excel
=xpath_XML节点计数("<books><book category='fiction'/><book category='history'/><book category='fiction'/></books>","//book[@category='fiction']")结果:
2统计不存在的节点
公式:
excel
=xpath_XML节点计数("<books><book/></books>","//author")结果:
0使用文件路径
公式:
excel
=xpath_XML节点计数("D:\data\products.xml","//product")结果:
156技术说明
- 通过
GetXmlContent自动判断输入:若File.Exists(input)为真则读取文件全部文本,否则将输入作为 XML 字符串处理。 - 使用
XmlDocument.LoadXml加载 XML,再通过XPathNavigator.Select执行表达式,返回XPathNodeIterator.Count。 - 异常情况下返回
-1,便于与正常统计结果(0 及正整数)区分。 - 与
xpath_XPath计算的区别:本函数专门用于节点计数(基于Select遍历),返回int;xpath_XPath计算为通用表达式计算(基于Evaluate),返回object。
错误处理
| 错误场景 | 返回值 |
|---|---|
| XML 格式不合法 | -1 |
| XPath 表达式语法错误 | -1 |
| 文件路径不存在或不可读(作为字符串解析失败时) | -1 |
| 参数为空或 null | -1 |
| 无匹配节点(正常情况) | 0 |