您的位置:首页 > 编程语言 > Java开发

工作中常用的XML解析Java代码实现

2016-10-17 00:28 369 查看
以下XML为例  进行Java代码解析
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student>
<name>刘诗诗</name>
<age>26</age>
</student>
<student>
<name>杨幂</name>
<age>28</age>
</student>
</students>
定义一个JavaBean进行解析
<pre name="code" class="html">package cn.an0327.pull;
public class Student {

private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}
代码实现
<pre name="code" class="html">import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;

public class TestPull01 {

/**
* 1、创建解析器工厂
* 2、根据解析器工厂创建解析器
* 3、把要操作的文件放到解析器里面
*/
public static void main(String[] args) throws Exception {
//创建解析器工厂
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
//根据工厂创建解析器
XmlPullParser parser = factory.newPullParser();
//得到要操作文件的输入流
InputStream in = new FileInputStream("src/stu.xml");
//把要操作的文件放到解析器里面
parser.setInput(in, "utf-8");
//开始解析

int type = 0;
List<Student> list = null;
Student student = null;
//如果当前解析到的标签,不是文档的结束,继续操作
while((type=parser.getEventType())!=XmlPullParser.END_DOCUMENT) {
//得到当前解析的标签的名称
String tagName = parser.getName();
/*
* 1、如果解析到students ,创建list集合
* 2、如果解析到student,创建student对象
* 3、如果解析到name和age,获取标签里面内容
* 4、把内容放到student对象里面
* */
switch(type) {
case XmlPullParser.START_TAG:
if("students".equals(tagName)) {
//创建list集合
list = new ArrayList<Student>();
} else if("student".equals(tagName)) {
student = new Student();
} else if("name".equals(tagName)) {
//得到标签里面的值
String name = parser.nextText();
//把name值放到对象里面
student.setName(name);
} else if("age".equals(tagName)) {
String age = parser.nextText();
student.setAge(age);
}
break;
case XmlPullParser.END_TAG:
//当解析到结束的student时候,把对象放到list里面
if("student".equals(tagName)) {
list.add(student);
}
break;
}
//向下执行
parser.next();
}

//遍历list集合
for (Student stu : list) {
System.out.println(stu.toString());
}
}

}




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  安卓 语言 java 工作 xml