Skip to content

XPath计算

函数名:xpath_XPath计算 / xpath_Evaluate

功能描述

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

会员等级:🟢 免费版(Free)

语法

excel
=xpath_XPath计算(XML字符串或文件路径, XPath表达式)

参数

参数名类型必填默认值说明
XML字符串或文件路径String-XML 格式的文本或 XML 文件路径(自动判断:若为已存在的文件路径则读取文件内容,否则作为 XML 字符串处理)
XPath表达式String-要计算的 XPath 表达式,支持函数运算与聚合计算

返回值

Object - 按计算结果的运行时类型自动返回:double/int 返回数值,bool 返回 TRUE/FALSEstring 返回字符串,其他类型返回其字符串形式。输入为空时返回 #N/A

使用示例

统计节点数量

公式

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

结果

3

求和计算

公式

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

结果

113

布尔判断

公式

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

结果

TRUE

数值运算(平均值)

公式

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

结果

40

字符串拼接

公式

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

结果

三体 - 活着

使用文件路径

公式

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

结果

1280.5

技术说明

  • 通过 GetXmlContent 自动判断输入:若 File.Exists(input) 为真则读取文件全部文本,否则将输入作为 XML 字符串处理。
  • 使用 XmlDocument.LoadXml 加载 XML,再通过 XPathNavigator.Evaluate 计算表达式。
  • 根据计算结果的运行时类型自动转换返回值:double 返回数值,int 返回整数,bool 返回 TRUE/FALSEstring 返回字符串,其余返回 ToString() 结果。
  • 支持的常用 XPath 函数:count()sum()name()concat()string()contains()not()true()false() 等,以及 + - * div mod 等运算符。

错误处理

错误场景返回值
XML 格式不合法错误: <异常信息>
XPath 表达式语法错误错误: <异常信息>
文件路径不存在或不可读(作为字符串解析失败时)错误: <异常信息>
参数为空或 null#N/A

基于源代码最新版本文档