Xpath按条件求和属性:查询asof大于2018的城市总人口总和
XPath查询表达式
sum(//city[population/@asof > 2018]/total/number())
表达式说明
- 用
//city定位文档中所有的城市节点 - 通过过滤条件
[population/@asof > 2018],筛选出population节点asof属性值大于2018的城市 - 提取符合条件的城市下
total节点的文本内容,转为数值类型 - 外层
sum()函数对所有提取到的数值求和,得到最终的总人口总和
补充:如果你提供的XML存在缩进笔误,
total实际是population的子节点(即population标签不是自闭合的),可以使用以下表达式:sum(//population[@asof > 2018]/total/number())
结果验证
代入你提供的XML数据,两个城市的population节点asof属性分别为2019、2020,均符合筛选条件,总人口总和为:2918695 + 78805467 = 81724162
内容的提问来源于stack exchange,提问作者Mayank Agarwal
相关产品推荐
相关产品推荐

