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

In Windows 10 Univeral getting XML from URL and show the information in ListView

我是新来的,但经常使用社区进行研究。但是现在我找不到我的具体问题的答案。

我正在为我的大学 Windows 10 创建一个通用应用程序。每个学生都想拥有的一个功能就是看看食堂里有什么。

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

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

遗憾的是,我没有找到任何教程如何执行此操作。所以我想你可能会帮助我(或者更好地了解如何做到这一点)。

我要解析信息的URL是:XML Data

这是 link 信息显示得很好的地方:Canteen Website

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

SAR-71

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

不过,我会尽力为您的项目提供一个起点。

首先,你要做的是"web scraping"

如果您正在编写 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");  

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

可以找到更详尽的解释 here

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

现在,Microsoft 有非常好的 XmlReader 文档,您可以找到 here

如果您遇到特定问题或阻塞点,请不要犹豫打开一个新问题,但要提供您怀疑导致问题的代码片段,以及您打算解决的问题的详细说明做什么,以及它在做什么而你不希望它做什么。

每当遇到必须从 Web 获取某些东西的情况时,就应该伸手 HttpClient (Win 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 examples

在 google 中,但有一些基本查询 here