我正在尝试阅读一些XML,并希望使用下面的代码来阅读它,因为这是针对metro 8应用程序的。我可以使用一些帮助来解析每个节点/元素等等。谢谢!
private void Button_Click(object sender, RoutedEventArgs e)
{
Uri UrlString = new Uri("http://v1.sidebuy.com/api/get/73d296a50d3b824ca08a8b27168f3b85/?city=nashville&format=xml");
var xmlDocument = XmlDocument.LoadFromUriAsync(UrlString);
text1.Text = xmlDocument.ToString();
}
答案 0 :(得分:4)
很难判断您是否因为XML部分或异步部分而感到困惑。你自己根本不进行解析 - XmlDocument
这样做(尽管如果可以的话,我建议使用LINQ to XML)。但是,您的变量名称和ToString
来电表明您还不知道LoadFromUriAsync
会返回IAsyncOperation<XmlDocument>
,而不是XmlDocument
。
实际上,它代表了XmlDocument
在未来某个时间点可用的承诺。那就是C#5的异步方法发挥作用......如果你将Button_Click
更改为异步方法,你可以写:
private async void Button_Click(object sender, RoutedEventArgs e)
{
Uri uri = new Uri("...");
XmlDocument xmlDocument = await XmlDocument.LoadFromUriAsync(UrlString);
text1.Text = xmlDocument.ToString();
}
现在,当你遇到await表达式时,你的方法实际上返回到调用者(UI事件循环),假设文档没有立即可用......但是当文档已经被提取,你的方法的其余部分将被执行(返回到UI线程)并且你将拥有你可以使用的文档,就像你同步获取它一样。