【发布时间】:2016-05-27 12:45:29
【问题描述】:
我使用的 API 需要一个哈希,它由所有特定元素的值的总和组成。例如,假设它是示例 XML 中的 <long> 元素。
当我使用 XPath SUM 函数计算这个值时,我得到的值与我简单地迭代和添加节点时得到的值不同。这是为什么呢?
string xml = @"
<longs>
<long>10567823175596159</long>
<long>10567823175596159</long>
</longs>
";
XDocument doc = XDocument.Parse(xml);
Console.WriteLine(long.Parse(doc.XPathEvaluate("sum(//longs/long/text())").ToString(),
System.Globalization.NumberStyles.Float));
var accountNumbers = doc.XPathSelectElements("//longs/long");
long sum=0;
foreach (var accountnumber in accountNumbers)
{
sum += long.Parse(accountnumber.Value);
}
Console.WriteLine(sum);
输出:
21135646351192300
21135646351192318
.Net 小提琴:https://dotnetfiddle.net/2niJ22
【问题讨论】:
标签: xml linq c#-4.0 xpath xelement