我无法从这个XML中提取数据

本文关键字:XML 提取 数据 | 更新日期: 2023-09-27 18:17:59

我目前正在用c#开发一个小的天气应用程序。为此,我需要从这个xml文件中提取数据:http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%3D%22london%22&format=xml

在本例中,我需要第一个/query/results/place/woeid节点的值。我一直在寻找周围,并尝试了许多不同的方法,但没有设法得到任何价值与这些。我当前的代码是这样的:

string query = String.Format("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%3D%22london%22&format=xml");
XmlDocument xml = new XmlDocument();
xml.Load(query);
XmlNodeList nodeList = wData.DocumentElement.SelectNodes("/query/results/place");
foreach (XmlNode node in nodeList)
{
    return node.SelectSingleNode("woeid").InnerText;
}
return "NO WOEID FOUND!";
我刚开始学习c#,所以我可能会犯一些愚蠢的错误。尽管如此,我还是很感激任何帮助。

我无法从这个XML中提取数据

可以使用XDocument

string query = String.Format("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%3D%22london%22&format=xml");
XDocument xml = XDocument.Load(query);
XNamespace ns = "http://where.yahooapis.com/v1/schema.rng";
var woeid = xml.Element("query").Element("results").Elements(ns + "place").FirstOrDefault().Element(ns +"woeid").Value;

确保检查XDocuments中是否有元素