XMLPULL 解析

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();
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值