WP7平台常用方法的XML解析
来源:互联网 发布:python模拟登录qq邮箱 编辑:程序博客网 时间:2024/06/05 04:18
对于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,下面给出一个简单的例子。
01
StringBuilder output =
new
StringBuilder();
02
03
String xmlString =
@"<?xml version='1.0'?>
04
<Items>
05
<Item>sub element<more/> cwj</Item>
06
</Items>"
;
07
08
// 创建一个XmlReader实例,这点类似Android平台上的SAXParser实例通过SAXParserFactory创建。
09
using
(XmlReader reader = XmlReader.Create(
new
StringReader(xmlString)))
10
{
11
XmlWriterSettings ws =
new
XmlWriterSettings();
12
ws.Indent =
true
;
13
14
using
(XmlWriter writer = XmlWriter.Create(output, ws))
15
{
16
17
while
(reader.Read())
18
{
19
switch
(reader.NodeType)
20
{
21
case
XmlNodeType.Element:
// 类似startElement()在Android的SAXParser类中。
22
writer.WriteStartElement(reader.Name);
23
break
;
24
case
XmlNodeType.Text:
//解析节点内容
25
writer.WriteString(reader.Value);
26
break
;
27
case
XmlNodeType.XmlDeclaration:
28
case
XmlNodeType.ProcessingInstruction:
//解析声明
29
writer.WriteProcessingInstruction(reader.Name, reader.Value);
30
break
;
31
case
XmlNodeType.Comment:
//解析注释
32
writer.WriteComment(reader.Value);
33
break
;
34
case
XmlNodeType.EndElement:
// 类似endElement()在SAXParser类中
35
36
writer.WriteFullEndElement();
37
break
;
38
}
39
}
40
}
41
}
2. LINQ to XML
Linq to xml这点类似我们传统Win32上使用的MSXML中的DOM解析器,将整个XML文件映射到内存,对于XML的定位和编辑比较方便。对于创建XML文件来说使用方法为,
01
StringBuilder output =
new
StringBuilder();
02
03
XDocument srcTree =
new
XDocument(
04
new
XComment(
"注释内容"
),
05
new
XElement(
"Root"
,
06
new
XElement(
"Child1"
,
"data1"
),
07
new
XElement(
"Child2"
,
"data2"
),
08
new
XElement(
"Child3"
,
"data3"
),
09
new
XElement(
"Child2"
,
"data4"
),
10
new
XElement(
"Info5"
,
"info5"
),
11
new
XElement(
"Info6"
,
"info6"
),
12
new
XElement(
"Info7"
,
"info7"
),
13
new
XElement(
"Info8"
,
"info8"
)
14
)
15
);
16
17
XDocument doc =
new
XDocument(
18
new
XComment(
"注释"
),
19
new
XElement(
"Root"
,
20
from el
in
srcTree.Element(
"Root"
).Elements()
21
where ((
string
)el).StartsWith(
"data"
)
22
select el
23
)
24
);
// 这里的语法比较特别类似传统DOM中的root.getElementsByTagName(ITEM);
25
26
output.Append(doc + Environment.NewLine);
27
OutputTextBlock.Text = output.ToString();
- WP7平台常用方法的XML解析
- Xml常用解析方法
- JDOM 解析 XML的常用方法
- Xml的三种常用解析方法
- Xml的三种常用解析方法
- java 解析Excel 与常用的xml解析方法
- Xml解析之dom4j中常用的方法
- dom4j中xml解析的一些常用方法
- Android Xml的常用解析方法及自定XmlRequest
- XML的解析方法
- 解析xml的方法
- xml的解析方法
- 解析XML的方法
- 解析XML的方法
- XML解析的方法
- 解析XML的方法
- xml的常用方法
- XML解析常用的技术
- &和&&的异同
- iOS开发3:UITextField控件的属性
- 交叉编译库依赖问题的解决方法
- java之爱情篇
- 自轻者人必轻之
- WP7平台常用方法的XML解析
- 第八周实验报告(2)
- sql 表、列 别名
- 关于常量折叠(转)
- lck ldb
- 模式——工程化实现及扩展(设计模式Java 版)
- .net 实现对文件对流对byte数组的压缩
- 打开eclipse的opens the android sdk and avd manager提示错误:error:location of the android sdk has not been .
- Oracle查看跟踪文件及其tkprof工具的使用