0

我有一个具体问题:

看着

<observation realtime_start="2013-02-23" realtime_end="2013-02-23" date="1975-01-01" value="4917.2"/>
<observation realtime_start="2013-02-23" realtime_end="2013-02-23" date="1976-01-01" value="5186.8"/>

所以我试图获取特定日期的值属性,但是

string xmlNode = root.SelectSingleNode("/observations/observation/@value").Value;

使用它可以获得第一个值(4917.2)。我将如何指定我想要来自“1976-01-01”和 5186 的值?

谢谢你。

4

1 回答 1

1

这将做到:

string xmlNode = root.SelectSingleNode("/observations/observation[@date='1976-01-01']/@value").Value;

这表示选择日期为 1976-01-01 的观察节点的 @value。并且要获得@value 的整数,您可能需要使用正在执行此操作的任何语言(我敢打赌它具有向下舍入功能)。正如@JLRishe 观察和解释的那样,您root似乎是一个.NET XmlNode 或XPathNavigator,它只能选择节点,因此下面的内容将不起作用并且会引发异常。我把它留在里面是为了表明有用于舍入的 xpath 函数。

string xmlNode = root.SelectSingleNode("floor(/observations/observation[@date='1976-01-01']/@value)").Value;

如果使用 xpath 函数 route (您似乎无法使用),并且如果您想始终舍入到最接近的整数,请将 floor 更改为舍入。如果你想总是四舍五入,把地板换到天花板。

于 2013-02-23T18:22:19.537 回答