wp7解决xml文件两种有效方法
对于XML数据的解析,WP7平台并没有提供SAXParser和DOMParser这两个常用的解析器,如果你过去是开发Android应用的,你可能发现在Windows Phone 7上解析XML还需要.Net Framework中专有的,比如XMLReader和 LINQ to XML parser这两种方法。
1. XML Reader
XmlReader解析速度比较快同时比较省内存,但是只读的无法修改XML的内容,同时没有缓存解析功能,在Android平台可以使用SAXParser类来解析,而XmlReader这点很类似SAXParser,下面给出一个简单的例子。
代码如下 | 复制代码 |
StringBuilder output = new StringBuilder(); String xmlString = @"<?xml version='1.0'?> // 创建一个XmlReader实例,这点类似Android平台上的SAXParser实例通过SAXParserFactory创建。 |
2. LINQ to XML
Linq to xml这点类似我们传统Win32上使用的MSXML中的DOM解析器,将整个XML文件映射到内存,对于XML的定位和编辑比较方便。对于创建XML文件来说使用方法为,
代码如下 | 复制代码 |
StringBuilder output = new StringBuilder(); XDocument srcTree = new XDocument( new XComment("注释内容"), new XElement("Root", new XElement("Child1", "data1"), new XElement("Child2", "data2"), new XElement("Child3", "data3"), new XElement("Child2", "data4"), new XElement("Info5", "info5"), new XElement("Info6", "info6"), new XElement("Info7", "info7"), new XElement("Info8", "info8") ) ); XDocument doc = new XDocument( new XComment("注释"), new XElement("Root", from el in srcTree.Element("Root").Elements() where ((string)el).StartsWith("data") select el ) ); // 这里的语法比较特别类似传统DOM中的root.getElementsByTagName(ITEM); output.Append(doc + Environment.NewLine); OutputTextBlock.Text = output.ToString(); |
现在wp7系统属于刚开始阶段,对于xml的解析还没有更多的技术文件来支持,大家可分享自己文档哦。