XML文件是一种标记性语言;在开发中经常在接口交互时被用作报文传输或者把自定义的类序列化为XML的形式存储到数据库。正因为XML文件这么常用,使用JAVA对XML文件进行读写操作是每一个开发人员必须掌握的技能点,下面总结一下个人用JAVA对XML文件的读写操作。
JAVA在XML解释器方面的包比较多,有基于DOM解释的DOM4j、推模式的SAX及拉模式的STAX。粗略介绍下这几种方式的特点,具体理论知识最好网上搜索一下进行了解。
* 1) 解释DOM : 每次都会把xml的具体内容加载到内存,操作速度比较快,不利于操作大的xml (J2EE常用)
* 2) 推模式SAX : 解释能够比较快完成xml解析,占用内存比较小.但可控性相对不灵活
* 3) 拉模式STAX : 可控性比较高,操作灵活.(Andriod内置XMLPullParser)
因此个人查找了一下基于STAX模式的XmlPullParser进行学习,后面也会总结几篇对XmlPullParser的使用说明。首先先来使用XmlPullParser对Xml进行读取操作
说明: XmlPullParser(后面简写为xpp)为第三方开源的内容,使用时需要引入第三方的包 xpp3-1.1.4.C.jar
下载地址为: http://www.extreme.indiana.edu/dist/java-repository/xpp3/distributions/xpp3-1.1.4c_all.zip
代码功能说明:使用xpp对xml文件进行遍历,包括空的Text节点,及属性等内容
被读取的XML文件如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <bookshops> 3 <bookshop No="1"> 4 <isenterty>no</isenterty> 5 <name>dangdang</name> 6 <address>http://www.dangdang.com</address> 7 <ip/> 8 </bookshop> 9 <bookshop No="2"> 10 <isenterty>yes</isenterty> 11 <name>dangdang</name> 12 <address>广州市中山三路</address> 13 </bookshop> 14 <bookshop No="3"> 15 <isenterty>no</isenterty> 16 <name>amazon</name> 17 <address>http//www.amazon.com</address> 18 </bookshop> 19 <bookshop No="4"> 20 <isenterty>no</isenterty> 21 <name>jingdong</name> 22 <address>http://www.jingdong.com</address> 23 </bookshop> 24 <bookshop No="5"> 25 <name>taobao</name> 26 <address>http://www.taobao.com</address> 27 <isenterty>no</isenterty> 28 </bookshop> 29 </bookshops>