在我的 C# 程序中,我正在加载一个System.Xml.Linq.Xelement
变量,其中包含我试图解析的 XML 文件的一部分,并为其提供各种 XPath 以评估使用该XPathEvaluate()
方法的值。
我的挑战是我的 XML 将一些数字存储为指数数字,即使我正在阅读 XPath 2.0 应该允许将这些数字理解为数字,XPath 也会忽略它们。
示例如下所示:
XML ( childNode
):
<Parent>
<Vals id="Val1">
<abc>1.8</abc>
</Vals>
<Vals id="Val2">
<abc>4.8552829108959736E-5</abc>
<def>4.940657864520423E-4</def>
<ghi>0.1262403356384331</ghi>
<jkl>0.0</jkl>
</Vals>
</Parent>
XPath ( myXPath
):
sum(Parent/Vals[@id="Val2"]/*[self::abc | self::def | self::ghi | self::jkl][number(.)=number(.)])
我的代码看起来像:
var value= childNode.XPathEvaluate(myXPath);
我希望这个值是:
value = 4.8552829108959736E-5 + 4.940657864520423E-4 + 0.126240335638433 + 0
= 0.126782954253994
但是,我得到的是:
value = 0.126240335638433 + 0
= 0.126240335638433
关于可以在我的 C# 代码中修复的任何方法的任何想法?