XMLPULL 解析
给定xml文件 text.xml
<root>
<resultcode>200</resultcode>
<reason>success</reason>
<result>
<item>
<rid>1</rid>
<name>中国合伙人</name>
<wk>2013.5.20--2013.5.26(单位:人民币)</wk>
<wboxoffice>¥20900万</wboxoffice>
<tboxoffice>¥31700万</tboxoffice>
</item>
<item>
<rid>6</rid>
<name>圣诞玫瑰(new)</name>
<wk>2013.5.20--2013.5.26(单位:人民币)</wk>
<wboxoffice>¥1390万</wboxoffice>
<tboxoffice>¥1390万</tboxoffice>
</item>
<item>
<rid>7</rid>
<name>一路狂奔(new)</name>
<wk>2013.5.20--2013.5.26(单位:人民币)</wk>
<wboxoffice>¥350万</wboxoffice>
<tboxoffice>¥350万</tboxoffice>
</item>
</result>
</root>
根据xml文件的值写Movies类
/**
* Project : Learn809Sax
* Create : hasee
* Date : 2016/8/9
*/
public class Movies {
private int rid;
private String name;
private String wk;
private String wboxoffice;
private String tboxoffice;
public int getRid() {
return rid;
}
public void setRid(int rid) {
this.rid = rid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getWk() {
return wk;
}
public void setWk(String wk) {
this.wk = wk;
}
public String getWboxoffice() {
return wboxoffice;
}
public void setWboxoffice(String wboxoffice) {
this.wboxoffice = wboxoffice;
}
public String getTboxoffice() {
return tboxoffice;
}
public void setTboxoffice(String tboxoffice) {
this.tboxoffice = tboxoffice;
}
@Override
public String toString() {
return "Movies{" +
"rid=" + rid +
", name='" + name + '\'' +
", wk='" + wk + '\'' +
", wboxoffice='" + wboxoffice + '\'' +
", tboxoffice='" + tboxoffice + '\'' +
'}';
}
}
对xml解析到movies对象中
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* Project : Learn809Sax
* Create : hasee
* Date : 2016/8/11
*/
public class Test2 {
public static void main(String[] args) {
String resultcode = null;
String reason = null;
List<Movies> list = null;//存放多组item标签
try {
XmlPullParserFactory xmlPullParserFactory = XmlPullParserFactory.newInstance();//工厂
XmlPullParser parser = xmlPullParserFactory.newPullParser();//解析
parser.setInput(new FileInputStream("res/test.xml"), "UTF-8");//解析的文件
int next;
while ((next = parser.next()) != XmlPullParser.END_DOCUMENT) {//判断不是最后文档
switch (next) {//判断是哪一个
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.START_TAG://当为开始标签的时候
switch (parser.getName()) {//判断标签名字
case "resultcode":
resultcode = parser.nextText().trim();
break;
case "reason":
reason = parser.nextText().trim();
break;
case "result":
list = new ArrayList<>();
break;
case "item"://遇到item标签创建对象放入list集合
list.add(new Movies());
break;
case "rid":
list.get(list.size() - 1).setRid(Integer.parseInt(parser.nextText().trim()));
break;
case "name":
list.get(list.size() - 1).setName(parser.nextText().trim());
break;
case "wk":
list.get(list.size() - 1).setWk(parser.nextText().trim());
break;
case "wboxoffice":
list.get(list.size() - 1).setWboxoffice(parser.nextText().trim());
break;
case "tboxoffice":
list.get(list.size() - 1).setTboxoffice(parser.nextText().trim());
break;
}
break;
case XmlPullParser.END_TAG:
break;
case XmlPullParser.END_DOCUMENT:
break;
}
}
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(resultcode);
System.out.println(reason);
for (Movies movies : list) {
System.out.println(movies);
}
}
}
生产XML文件
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import org.xmlpull.v1.XmlSerializer;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* Project : Learn809Sax
* Create : hasee
* Date : 2016/8/11
*/
public class Test03 {
public static void main(String[] args) {
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();//工厂
XmlSerializer serializer = factory.newSerializer();//序列化
serializer.setOutput(new FileOutputStream("res/data.xml"),"UTF-8");//输出目标文件
serializer.startDocument(null, true); //开始文档,命名空间为null
serializer.startTag(null, "result"); //开始标签 第一个为命名空间null,第二个是标签名
serializer.attribute(null, "font", "字体");//设置属性 命名空间为null,名字为font,值为字体。
serializer.text("第一个XML"); //设置标签中的内容
serializer.endTag(null, "result"); //结束标签
serializer.endDocument(); //结束文档
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}