XMLPULL 解析

来源:互联网 发布:程序员编程用什么软件 编辑:程序博客网 时间:2024/05/21 10:54

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;}@Overridepublic 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();}}}
0 0