xmlpull解析

xmlpull解析也是跟sax解析一樣,都是邊解析邊釋放,所以不會像dom解析那樣出現出現溢出。

他的實現代碼如下:

package itcast.cn;


import java.io.FileInputStream;

import java.util.ArrayList;


import org.xmlpull.v1.XmlPullParser;

import org.xmlpull.v1.XmlPullParserException;

import org.xmlpull.v1.XmlPullParserFactory;

//把兩個person封裝到集合裏面

//則需要有兩個對象,然後把數據放在對象裏面,之後把對象放在集合裏面

public class Pull {


public static void main(String[] args) throws Exception {

//必須要導入家暴--由於是第三方的,所以要導入

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();

XmlPullParser pullParser = factory.newPullParser();

//解析文件

pullParser.setInput(new FileInputStream("person.xml"), "utf-8");

//獲取事件類型

int type=pullParser.getEventType();

   //循環移動解析器

Person person=null;

ArrayList<Person> persons =null;

while(type!=XmlPullParser.END_DOCUMENT){

switch(type){

case XmlPullParser.START_TAG:

if (pullParser.getName().equals("persons")) {

persons = new ArrayList<Person>();

}else if (pullParser.getName().equals("person")) {

person=new Person();

String id = pullParser.getAttributeValue(0);

person.setId(id);

}else if (pullParser.getName().equals("name")) {

//拿到下一個的值

String name= pullParser.nextText();

person.setName(name);

}else if (pullParser.getName().equals("age")) {

String age= pullParser.nextText();

//由於得到的是String類型,所以需要將這個String類型的轉換成int

person.setAge(Integer.parseInt(age));

}

break;

case XmlPullParser.END_TAG:

if (pullParser.getName().equals("person")) {

persons.add(person);

}

break;

default:

break;

 

}

type=pullParser.next();

 }

System.out.println(persons);

}


}

Person對象:

package itcast.cn;


public class Person {

private String name;

private int age;

private String id;


public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}


@Override

public String toString() {

return "Person [name=" + name + ", age=" + age + ", id=" + id + "]";

}


public Person(String id, String name, int age) {

super();

this.id = id;

this.name = name;

this.age = age;

}


public Person() {

super();

// TODO Auto-generated constructor stub

}



}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章