Windows 8开发随笔(1) 关于xml的操作

今天开始新的旅程 下午针对对windows8的做了点小东西。

使用到的相关的技术

1.Linq 2 xml

 1 public async Task<List<Act>> LoadActList() 
 2        { 
 3            XDocument doc = await LoadActivityXML("activities_m.xml");//这里用到了下面的一个方法读取xml文件
 4 
 5            var result = from a in doc.Descendants("acts")    //这里使用一个linq来创建一个list 
 6                         select new Act 
 7                         { 
 8                             Name = (string)a.Element("name"),  //如果要读取的是act节点下面内容,使用Element(“name”)来填充 
 9                             Good = (string)a.Element("good"), 
10                             Bad = (string)a.Element("bad"),
11                             Title = (string)a.Value                   //如果是本节点下面有内容,则使用a.Value 
12                         };
13 
14            var ReturnTask = Task.Factory.StartNew(() => result.ToList()); 
15            return await ReturnTask; 
16        }
View Code

2.windows8的项目中的xml文件读取操作

//这里用到了async ,在win8中,对文件的操作都用到了 async和await,以后会大量看见这样的用法,当你在类中使用await方法,一定要在方法上添加async

 1 private async Task<XDocument> LoadActivityXML(string file) 
 2       { 
 3           // StreamResourceInfo xml = Application.GetResourceStream(new Uri("/daxueshenglaohuangli;component//activities_m.xml", System.UriKind.Relative));//这个是wp8读取xml文件的方式,可以作为参考
 4 
 5           StorageFolder storageFolder = await Package.Current.InstalledLocation.GetFolderAsync("XML");//在win8读取文件夹先,要使用await
 6 
 7           StorageFile storageFile = await storageFolder.GetFileAsync(file);//然后从文件夹中读取文件
 8 
 9           XmlLoadSettings loadSettings = new XmlLoadSettings(); 
10           loadSettings.ProhibitDtd = false; 
11           loadSettings.ResolveExternals = false;
12 
13           XmlDocument xmlDoc = await XmlDocument.LoadFromFileAsync(storageFile, loadSettings); 
14           XDocument doc = XDocument.Parse(xmlDoc.GetXml()); 
15           var ReturnTask = Task.Factory.StartNew(() => doc);//使用task来启动 
16           return await ReturnTask; 
17       }
View Code

//以下方式还没有测试,留着以后测试

        var folder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Data");
            var file = await folder.GetFileAsync("bookstore.xml");
            var xmldoc = await Windows.Data.Xml.Dom.XmlDocument.LoadFromFileAsync(file);

posted @ 2013-05-12 22:00  Blue Studio  阅读(294)  评论(0编辑  收藏  举报