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
打印结果:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iMykTM5M2M3MDMlZGZ5MjN3EDZmFTYzgjY2QmN4ADZx8CXxAzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.png)
PULL解析:
pull解析的第三方的,须要导入jar包才干支持
本次依旧解析上面的student.xml文件
常常出现PULL本地解析抛出:Exception in thread "main" org.xmlpull.v1.XmlPullParserException: PI must not start with xml (position:unknown 锘?
@1:6 in java.io.FileReader@5e2de80c) 这里设置相应编码就能够。
以上两种都是本地解析,网络解析同理,仅仅要将解析的数据源设置相相应的网络流就能够。