Windows 8开发随笔(1) 关于xml的操作
今天开始新的旅程 下午针对对windows8的做了点小东西。
使用到的相关的技术
1.Linq 2 xml
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }
2.windows8的项目中的xml文件读取操作
//这里用到了async ,在win8中,对文件的操作都用到了 async和await,以后会大量看见这样的用法,当你在类中使用await方法,一定要在方法上添加async
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }
//以下方式还没有测试,留着以后测试
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);