天天看点

SAX PULL解析实例

XML三种解析方式:

SAX解析:基于事件驱动,事件机制基于回调函数的,得到节点和节点之间内容时也会回调事件 PULL解析:相同基于事件驱动,仅仅只是回调时是常量 DOM解析:是先把XML文件装入内存中。在解析,耗费资源

SAX解析:

student.xml

xml version="1.0" encoding="UTF-8"?

>

-<students>

-<student group="1" id="1001">

<name>张三</name>

<sex>男</sex>

<age>30</age>

<email>[email protected]</email>

<birthday>1900-09-09</birthday>

<memo>组长</memo>

</student>

-<student group="1" id="1002">

<name>lisi</name>

<sex>女</sex>

<age>23</age>

<email>[email protected]</email>

<birthday>2000-09-09</birthday>

<memo>组员</memo>

-<student group="1" id="1003">

<name>wangwu</name>

<email>[email protected]</email>

<birthday>1990-09-09</birthday>

-<student group="2" id="1004">

<name>Jack</name>

<email>[email protected]</email>

<birthday>2001-09-09</birthday>

-<student group="2" id="1005">

<name>Rose</name>

<email>[email protected]</email>

<birthday>2003-09-09</birthday>

-<student group="3" id="1006">

<name>Tom</name>

<email>[email protected]</email>

<birthday>2008-09-09</birthday>

</students>

StudentHandler.java

StudentTest.java

打印结果:

SAX PULL解析实例

PULL解析:

pull解析的第三方的,须要导入jar包才干支持

本次依旧解析上面的student.xml文件

SAX PULL解析实例

常常出现PULL本地解析抛出:Exception in thread "main" org.xmlpull.v1.XmlPullParserException: PI must not start with xml (position:unknown 锘?

@1:6 in java.io.FileReader@5e2de80c) 这里设置相应编码就能够。

以上两种都是本地解析,网络解析同理,仅仅要将解析的数据源设置相相应的网络流就能够。