Java:PULLXML解析XML
资源下载:
https://download.csdn.net/download/qq_34810707/10778410
或者https://share.weiyun.com/5byXH2s
一:工程目录结构
二:BOOKS类
package com.demo.tools;
public class BOOKS {
public String getShuming() {
return shuming;
}
public void setShuming(String shuming) {
this.shuming = shuming;
}
public String getZuozhe() {
return zuozhe;
}
public void setZuozhe(String zuozhe) {
this.zuozhe = zuozhe;
}
public double getJiage() {
return jiage;
}
public void setJiage(double jiage) {
this.jiage = jiage;
}
public String shuming;
public String zuozhe;
public double jiage;
}
三:”XML:aaa.xml
<?xml version="1.0" encoding="UTF-8"?>
<书架>
<书>
<书名>aaa</书名>
<作者>bbb</作者>
</书>
<书>
<书名>111</书名>
<作者>222</作者>
</书>
</书架>
四:XMLPULLPARSE类
package com.demo.xml;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import org.junit.jupiter.api.Test;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import com.demo.tools.BOOKS;
public class XMLPULLPARSE {
@Test
public void pullParse() throws Exception {
ArrayList<BOOKS> booksList = null;
BOOKS books =null;
XmlPullParserFactory xmlPullParserFactory = XmlPullParserFactory.newInstance();
XmlPullParser pullParser = xmlPullParserFactory.newPullParser();
pullParser.setInput(new FileInputStream(new File("aaa.xml")), "UTF-8");
int eventType = pullParser.getEventType();
while(eventType != XmlPullParser.END_DOCUMENT) {
switch(eventType) {
case XmlPullParser.START_TAG:
System.out.println("===START_DOCUMENT===");
if("书架".equals(pullParser.getName())) {
//创建一个对象
booksList = new ArrayList<>();
}
else if("书".equals(pullParser.getName())) {
//创建一个对象
books = new BOOKS();
}else if("书名".equals(pullParser.getName())) {
//创建给对象设置属性
books.setShuming(pullParser.nextText());
}else if("作者".equals(pullParser.getName())) {
//创建给对象设置属性
books.setZuozhe(pullParser.nextText());
}
break;
case XmlPullParser.END_TAG:
//结束标签
System.out.println("===END_DOCUMENT===");
if("书".equals(pullParser.getName())) {
//把book对象添加到集合中去
// System.out.println(books.getShuming());
// System.out.println(books.getZuozhe());
// System.out.println(books.getJiage());
booksList.add(books);
}
break;
}
//事件轮询
eventType = pullParser.next();
}
//遍历集合
for(BOOKS tmp:booksList){
System.out.println(tmp.shuming);
}
}
}