如何在uwp中读取xml文件

时间:2017-12-31 07:05:52

标签: c# xml uwp

如何使用C#读取存储在UWP服务器中的XML文件? 我尝试下载XML文件,然后使用以下代码阅读:

StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
Uri address = new Uri("https://www.dropbox.com/s/lyf9lv03dogidb9/home.xml?dl=1");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
WebResponse response = await request.GetResponseAsync();
Stream stream = response.GetResponseStream();
StorageFile XMLfile = await storageFolder.CreateFileAsync("homemv.xml", CreationCollisionOption.ReplaceExisting);
await Windows.Storage.FileIO.WriteBytesAsync(XMLfile, ReadStream(stream));
//load data into flip view
StorageFile tempFile = await ApplicationData.Current.LocalFolder.GetFileAsync("homemv.xml");
String datas = await FileIO.ReadTextAsync(tempFile);
XDocument loadedData = XDocument.Load(datas);
var data = from query in loadedData.Descendants("mvinfo")
           select new MVData
           {
               VideoTitle = (string)query.Element("title"),
               VideoYear = (string)query.Element("year"),
               VideoSource = (string)query.Element("link"),
               ImageSource = (string)query.Element("imgSource")
           };
YouTubeMV.ItemsSource = data;

当我运行应用程序时,它显示一个错误,即Uri参数必须是文件系统或绝对路径。 我也尝试过使用:

Uri uri = new Uri( "https://www.dropbox.com/s/lyf9lv03dogidb9/home.xml?dl=1");
XDocument document = XDocument.Load(uri);

但它也行不通。

1 个答案:

答案 0 :(得分:0)

XDocument.Load()不接受http sheme URI - 它用于文件访问。

您要做的是XDocument.Load("C:/test.xml");其中C:/test.xml是XML文件的路径。在访问文件之前,需要先创建该文件。

如果要从流中创建XML,可以在此处查看:XDocument Load - cannot open