Skip to content

xpath_Evaluate函数

函数名:xpath_XPath计算 / xpath_Evaluate

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

函数功能

执行XPath数值或表达式计算并返回结果,支持数值运算、聚合函数、布尔判断及字符串计算,自动按结果类型返回,适用于XML数据统计与条件求值场景。

参数规范

参数名类型必填示例特殊说明
xmlString"<books><book/></books>"XML格式的文本或XML文件路径(自动判断)
xpathString"count(//book)"要计算的XPath表达式,支持函数运算与聚合计算

使用案例

统计节点数量

问题描述:计算book节点的数量 公式演示

excel
=xpath_XPath计算("<books><book/><book/><book/></books>", "count(//book)")

输出效果

text
3

求和计算

问题描述:计算所有book节点的price属性值之和 公式演示

excel
=xpath_XPath计算("<books><book price='35'/><book price='50'/><book price='28'/></books>", "sum(//book/@price)")

输出效果

text
113

布尔判断

问题描述:判断是否存在price大于40的book节点 公式演示

excel
=xpath_XPath计算("<books><book price='35'/><book price='50'/></books>", "//book[@price>40] != ''")

输出效果

text
TRUE

数值运算

问题描述:计算平均价格(总和除以数量) 公式演示

excel
=xpath_XPath计算("<books><book price='30'/><book price='50'/></books>", "sum(//book/@price) div count(//book)")

输出效果

text
40

字符串拼接

问题描述:将多个文本节点拼接为一个字符串 公式演示

excel
=xpath_XPath计算("<books><book><title>三体</title></book><book><title>活着</title></book></books>", "concat(//book[1]/title, ' - ', //book[2]/title)")

输出效果

text
三体 - 活着

使用文件路径

问题描述:从本地XML文件中计算订单总金额 公式演示

excel
=xpath_XPath计算("D:\data\orders.xml", "sum(//order/@amount)")

输出效果

text
1280.5

技术说明

实现原理

  • 加载XML文档后,使用XPathNavigator.Evaluate()方法计算XPath表达式
  • 根据计算结果的运行时类型自动转换返回值:
    • 结果为double类型时返回数值
    • 结果为int类型时返回整数
    • 结果为bool类型时返回TRUEFALSE
    • 结果为string类型时返回字符串

支持的XPath函数

函数类别常用函数说明
节点函数count()name()local-name()节点统计与名称获取
数值函数sum()number()round()floor()数值聚合与取整
字符串函数concat()string()substring()contains()字符串拼接与处理
布尔函数true()false()not()布尔逻辑运算
运算符+-*divmod=!=<>算术与比较运算

输入模式自动判断

  • 当输入参数以合法文件路径形式提供(如D:\data\orders.xml)时,按文件路径加载XML
  • 当输入参数以<开头的XML标签内容时,按XML字符串解析
  • 自动判断逻辑确保两种输入方式无缝切换

异常处理

错误场景返回值
XML格式不合法错误提示
XPath表达式语法错误错误提示
计算结果为空空字符串
文件路径不存在或不可读错误提示
参数为空或null错误提示

扩展应用

与IF函数结合做条件判断

excel
=IF(xpath_XPath计算(A1, "count(//error)>0"), "存在错误", "无错误") // A1中为XML字符串

XML数据统计与分析

配合单元格引用,可对XML格式的报表数据进行汇总统计,适用于SOAP接口响应解析、Sitemap链接数统计、配置文件参数计算等场景。

注:本函数为免费功能,支持XML字符串和文件路径两种输入方式,在WPS 2019+和Excel 365中测试通过。

基于源代码最新版本文档