pull解析XML文件
`
//测试类
package com.heima.pullXML;
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.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
public class pullXML {
/**
* pull解析XML文件(把xml文件写到集合中)
* 1.创建解析器工厂类
* 2.通过工厂类创建解析器
* 3.获取输入流对象,读取xml文件
* 4.封装解析器
* @throws Exception
*/
public static void main(String[] args) throws Exception {
//1.创建解析器工厂类
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
//2.通过工厂类创建解析器
XmlPullParser parser = factory.newPullParser();
//3.获取输入流对象,读取xml文件
InputStream is = new FileInputStream("src/employee.xml");
//4.封装解析器
parser.setInput(is, "utf-8");
//5.开始解析
int type = 0;
Employee employee = null;
List<Employee> list = new ArrayList<Employee>();
while ((type = parser.getEventType())!=XmlPullParser.END_DOCUMENT) {
String tagName = parser.getName();
switch (type) {
case XmlPullParser.START_TAG:
if ("employee".equals(tagName)) {
employee = new Employee();
} else if("name".equals(tagName)){
employee.setName(parser.nextText());
} else if("dept".equals(tagName)){
employee.setDept(parser.nextText());
} else if("sal".equals(tagName)){
employee.setSal(parser.nextText());
}
break;
case XmlPullParser.END_TAG:
if ("employee".equals(tagName)) {
list.add(employee);
}
break;
}
parser.next();
}
for (Employee employee2 : list) {
System.out.println(employee2);
}
}`
//定义xml文件的相应对象
`package com.heima.pullXML;
public class Employee {
private String name;
private String dept;
private String sal;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public String getSal() {
return sal;
}
public void setSal(String sal) {
this.sal = sal;
}
@Override
public String toString() {
return "Employee [name=" + name + ", dept=" + dept + ", sal=" + sal
+ "]";
}`
//用于解析的xml文件
`<employees>
<employee>
<name>张三</name>
<dept>安卓开发</dept>
<sal>15000</sal>
</employee>
<employee>
<name>李四</name>
<dept>产品经理</dept>
<sal>14000</sal>
</employee>
</employees>`