在Windows 10 Univeral中从URL获取XML并在ListView中显示信息

时间:2016-03-23 13:30:22

标签: xml xml-parsing windows-10-universal windows-10-mobile

我是新来的,但在社区中大量用于研究。但现在我找不到我的具体问题的答案。

我正在为我的大学创建一个适用于Windows 10的通用应用。每个学生想要的一个功能是看看食堂里有什么。

我已经和那些为我们的食堂提供互联网信息的人谈过了,我可以在我的应用程序中使用它们(我这样做了,因为有些人通过解析网站上的信息提到了版权问题.. )。

现在我想从URL中获取这些信息并从中创建一个ListView(或更好的东西?),以便在我的应用中显示所有必要的信息。

不幸的是我没有找到任何教程如何做到这一点。所以我认为你可以帮助我(或者更好地了解如何做到这一点)。

我要解析信息的网址是:XML Data

这是信息显示良好的链接:Canteen Website

我真的希望你能帮助我,谢谢你的出色工作!

SAR-71

2 个答案:

答案 0 :(得分:0)

首先,欢迎来到StackOverflow。我不得不告诉你,StackOverflow问题的一个重要规则是提供示例代码,以显示尝试解决问题的证据。这里的人不是为您编写项目代码,但如果您有一个特定且定义明确的问题,我们很乐意为您提供帮助。

但是,我会尝试为您的项目提供一个起点。

首先,您要做的事情称为“网络抓取”

如果您正在编写Windows 10应用程序,我假设您是在C#中编写的,并且熟练使用它。

一个处理此问题的库称为HTMLAgilityPack。

您自己的基本用例是:

HtmlWeb web = new HtmlWeb();  
HtmlDocument document = web.Load("https://www.studentenwerk-oberfranken.de/?eID=bwrkSpeiseplanRss&tx_bwrkspeiseplan_pi2%5Bbar%5D=340&tx_bwrkspeiseplan_pi2%5Bdate%5D=2016-03-22");  

我注意到该网址中有一个日期,但我会假设您知道如何更改该日期以匹配当前日期。

可以找到更详尽的解释here

现在您已拥有XML,您需要解析XML以获取相关信息。值得庆幸的是,C#有一个名为XmlReader的对象。

现在,Microsoft为XmlReader提供了非常好的文档,您可以找到here

如果您遇到特定问题或阻止点,请不要犹豫,打开一个新问题,但要使用您怀疑导致问题的代码片段,以及您打算执行此操作的详细说明,以及你不打算做什么。

答案 1 :(得分:0)

每当遇到必须从网上获取某些内容的情况时,都应该找到HttpClientWin 10 sample)。下载XML的代码可能如下所示:

var httpClient = new HttpClient();
var httpResponse = await httpClient.GetAsync("<your_uri>");
httpResponse.EnsureSuccessStatusCode();
var httpResponseBody = await httpResponse.Content.ReadAsStringAsync();

httpReponseBody是您的XML

在解析XML时,我建议使用LINQ to XML。您只需搜索

即可找到使用样本
  

LINQ to XML示例

谷歌中的

,但有一些基本的查询here