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/FALSE,string 返回字符串,其他类型返回其字符串形式。输入为空时返回 #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/FALSE,string返回字符串,其余返回ToString()结果。 - 支持的常用 XPath 函数:
count()、sum()、name()、concat()、string()、contains()、not()、true()、false()等,以及+ - * div mod等运算符。
错误处理
| 错误场景 | 返回值 |
|---|---|
| XML 格式不合法 | 错误: <异常信息> |
| XPath 表达式语法错误 | 错误: <异常信息> |
| 文件路径不存在或不可读(作为字符串解析失败时) | 错误: <异常信息> |
| 参数为空或 null | #N/A |