C# 如何从xml Url获取特定节点并在winforms中列出它们

C# 如何从xml Url获取特定节点并在winforms中列出它们,c#,xml,winforms,C#,Xml,Winforms,我对编程非常陌生,我有一项任务要用winforms完成,而且我以前从未接触过XML 我必须从一个名为url.XML的XML文件中获取天气数据,该文件中有三个链接(例如:) 到目前为止,我已经成功地从XML文件中要显示的第一个链接获取了温度,但是我很难获取所有的温度 我的问题是:如何从url.xml中的所有三个城市获取温度值,并将其显示在我的winforms应用程序上? 如果您需要更多信息,请告诉我,正如我说过的,我对编程非常陌生,我非常感谢您提供的所有帮助。在这种情况下,最好的方法是使用Linq

我对编程非常陌生,我有一项任务要用winforms完成,而且我以前从未接触过XML

我必须从一个名为url.XML的XML文件中获取天气数据,该文件中有三个链接(例如:)

到目前为止,我已经成功地从XML文件中要显示的第一个链接获取了温度,但是我很难获取所有的温度

我的问题是:如何从url.xml中的所有三个城市获取温度值,并将其显示在我的winforms应用程序上?


如果您需要更多信息,请告诉我,正如我说过的,我对编程非常陌生,我非常感谢您提供的所有帮助。

在这种情况下,最好的方法是使用Linq获得您想要的值

将URL加载到字符串中,然后使用XmlDocument将字符串作为XML读取

    public string xmlURL = "http://www.yr.no/place/sweden/stockholm/stockholm/forecast.xml";
    private void Form1_Load(object sender, EventArgs e) {
        string xmlStr;
        using (var wc = new WebClient()) {
            xmlStr = wc.DownloadString(xmlURL);
        }
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(xmlStr);
        XmlElement root = xmlDoc.DocumentElement;
        XmlNode node = root.SelectSingleNode("XPathInfo");
   } 
阅读更多关于: 一些XPath示例
我会发布更多信息,但如果您需要帮助,请在MSDN中查找SelectNodes和SelectSingleNode,例如,所有位置值都使用SelectNodes,或者如果您需要非常具体的内容,请使用SelectSingleNode。

Q1,如何获取温度值。

下面代码中的变量
r
是您想要的

Q2,如何在我的winforms应用程序上显示它们。

恐怕我帮不了你,你需要自己编码

    string url = "http://www.yr.no/place/sweden/stockholm/stockholm/forecast.xml";
    var xml = XDocument.Load(url);
    var search = xml.XPathSelectElements("/weatherdata/forecast/tabular//time");
    var r = search.Select(p => new {
        from = p.Attribute("from").Value,
        to = p.Attribute("to").Value,
        period = p.Attribute("period").Value,
        temperature_unit = p.Element("temperature").Attribute("unit").Value,
        temperature_value = p.Element("temperature").Attribute("value").Value,
    }).ToList();
上面的代码包括
xdocument
,“Linq”和“XPath”,您需要知道。如果您不知道,请参见以下内容:

  • XDocument:

  • Linq表达式:

  • XPath:


您好,谢谢您的回答。我只是想知道,在XmlNode=doc.SelectSingleNode中,您是从哪里得到“doc”的?@Sten修复了。。。我来打字。我从我写的一个程序中复制了一些东西。现在它告诉我XDocument不包含“SelectSingleNode”的定义。我错过什么了吗?我确实写下了使用指令。@Sten我忘了包括使根成为元素的部分,对此我很抱歉。换了,看看能不能用。没问题,谢谢你的帮助!现在“SelectSingleNode”可以工作了,但“DocumentElement”上出现了一个错误。“XDocument不包含“DocumentElement”等的定义。有什么想法吗?