来自xml的温度列表的IEnumerable <xelement>

时间:2016-12-04 17:56:45

标签: c# linq

我无法访问温度节点。我会在IEnumerable<XElement>中列出温度列表。

现在这是IEnumerable<XElement>的结果为0

的代码
XElement xml = XElement.Load("http://dati.meteotrentino.it/service.asmx/ultimiDatiStazione?codice=T0408");

IEnumerable<XElement> temperature = xml.Elements("temperature");

1 个答案:

答案 0 :(得分:1)

您必须考虑xml名称空间(xmlns="http://www.meteotrentino.it/"

XElement xml = XElement.Load("http://dati.meteotrentino.it/service.asmx/ultimiDatiStazione?codice=T0408");

XNamespace ns = "http://www.meteotrentino.it/";
IEnumerable<XElement> temperature = xml.Elements(ns + "temperature");
var temperatura_aria = temperature.Descendants(ns + "temperatura_aria");

所以我会这样做:

XElement xml = XElement.Load("http://dati.meteotrentino.it/service.asmx/ultimiDatiStazione?codice=T0408");
XNamespace ns = "http://www.meteotrentino.it/";

var temperatura_aria = xml.Descendants(ns + "temperatura_aria")
                            .Select(x => new
                            {
                                Time = (DateTime)x.Element(ns+ "data"),
                                Temp = (decimal)x.Element(ns + "temperatura"),
                            })
                            .ToList();