gpt4 book ai didi

c# - 从不同命名的 xml 节点获取相同属性的总和

转载 作者:太空宇宙 更新时间:2023-11-03 13:40:55 25 4
gpt4 key购买 nike

我有一个这样的 xml 文件

<root>
<segmentNameA attributeName="10" />
<segmentNameB attributeName="50" />
</root>

这是我的代码:

XPathDocument xPathDocument = new XPathDocument(analysisFileToProcess);
XPathNavigator Navigator = xPathDocument.CreateNavigator();

我想得到所有 attributeName 属性的总和 (10 + 50)。

这是我的做法

var sum /*want to obtain 60*/ = Navigator.Select(Navigator.Compile("sum(/root/*[self::segmentNameA or self::segmentNameB]/@attributeName)"));

我得到一个表达式“有一个无效的标记”。

但是,当我这样做的时候

var nodes = Navigator.Select(Navigator.Compile("/root/*[self::segmentNameA or self::segmentNameB]"));

我得到了所有包含我想要求和的属性的节点。

当我这样做的时候

var nodes = Navigator.Select(Navigator.Compile("/root/*[self::segmentNameA or self::segmentNameB]/@attributeName"));

我得到了属性列表。为什么我不能对此使用求和函数?

有人可以指出我做错了什么吗?

最佳答案

它发生了,因为 XPath 表达式必须评估为一个节点集。
使用 Evaluate 方法代替:

var sum = (double)Navigator.Evaluate("sum(/root/*[self::segmentNameA or self::segmentNameB]/@attributeName)");

关于c# - 从不同命名的 xml 节点获取相同属性的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17075426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com