我有一个具体的问题:
看着
<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的价值?
谢谢。
答案 0 :(得分:1)
这样做:
string xmlNode = root.SelectSingleNode("/observations/observation[@date='1976-01-01']/@value").Value;
这就是选择日期为1976-01-01的观察节点的@value。要得到@value的整数,你可能需要使用你正在做的任何语言(我敢打赌它有一个向下舍入功能)。正如@JLRis所观察和解释的那样,您的root
似乎是一个.NET XmlNode或XPathNavigator,它只能选择节点,因此下面的代码不起作用并会引发异常。我把它留下来表明有四舍五入的xpath函数。
string xmlNode = root.SelectSingleNode("floor(/observations/observation[@date='1976-01-01']/@value)").Value;
如果使用xpath函数路径(它似乎无法使用),并且如果要始终舍入到最接近的整数,则将floor更改为round。如果你想要总是四舍五入,那就改变一下。