需要解析的XML:
<?xml version="1.0" encoding="utf-8"?>
<persons>
<person id="23">
<name>张老师</name>
<age>21</age>
<persion>
<person id="20">
<name>李老师</name>
<age>25</age>
<persion>
<persons>
<person id="23">
<name>张老师</name>
<age>21</age>
<persion>
<person id="20">
<name>李老师</name>
<age>25</age>
<persion>
</persons>
需要在这里下载响应的jar包:http://www.xmlpull.org/v1/download/unpacked/doc/
Java主要文件:
//创建一个xml解析的工厂
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
//获得xml解析类的引用
XmlPullParser parser = factory.newPullParser();
//以流的方式传入需要解析的xml数据
parser.setInput(java.io.Reader in);
//获得事件的类型
int eventType = parser.getEventType();
//判断是否到了文档结束位置
while(eventType!=XmlPullParser.END_DOCUMENT){
switch(eventType){
//开始读文档
case XmlPullParser.START_DOCUMENT:
break;
//遇到标签元素
case XmlPullParser.START_TAG:
if("person".equals(parser.getName())){
//取出属性值,0是代表第0个属性
int id = Integer.parseInt(parser.getAttributeValue(0));
} else if("name".equals(parser.getName())){
//获取该节点的内容
String name = parser.netText();
}else if("age".equals(parser.getName())){
//获取该节点的内容
String age = parser.netText();
}
break;
//标签结束
case XmlPullParser.END_TAG:
if("person".equals(parser.getName())){
//这里可以做一些初始化
}
break;
}
//循环
eventType = parser.next();
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
//获得xml解析类的引用
XmlPullParser parser = factory.newPullParser();
//以流的方式传入需要解析的xml数据
parser.setInput(java.io.Reader in);
//获得事件的类型
int eventType = parser.getEventType();
//判断是否到了文档结束位置
while(eventType!=XmlPullParser.END_DOCUMENT){
switch(eventType){
//开始读文档
case XmlPullParser.START_DOCUMENT:
break;
//遇到标签元素
case XmlPullParser.START_TAG:
if("person".equals(parser.getName())){
//取出属性值,0是代表第0个属性
int id = Integer.parseInt(parser.getAttributeValue(0));
} else if("name".equals(parser.getName())){
//获取该节点的内容
String name = parser.netText();
}else if("age".equals(parser.getName())){
//获取该节点的内容
String age = parser.netText();
}
break;
//标签结束
case XmlPullParser.END_TAG:
if("person".equals(parser.getName())){
//这里可以做一些初始化
}
break;
}
//循环
eventType = parser.next();
}