我无法访问温度节点。我会在IEnumerable<XElement>
中列出温度列表。
现在这是IEnumerable<XElement>
的结果为0
XElement xml = XElement.Load("http://dati.meteotrentino.it/service.asmx/ultimiDatiStazione?codice=T0408");
IEnumerable<XElement> temperature = xml.Elements("temperature");
答案 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();