需要解析的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();
}