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

来源:互联网 发布:上市的大数据公司 编辑:程序博客网 时间:2024/05/17 18:48
以下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;}@Overridepublic 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());}}}



1 0
原创粉丝点击