XMLPULL解析(2)---通过对象序列化生成XML文档
来源:互联网 发布:创维云电视软件下载 编辑:程序博客网 时间:2024/06/06 00:21
在基本操作了XMLPULL解析 拉模式原理后,我开始学习对XML文档的CURD增删改查操作,不同于SAX和DOM解析方式,STAX的XMLPULL解析有随时终止解析和节约内存的优势。
首先我通过一个对象数据《List》生成XML文档的例子,了解生成XML文档原理:
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.junit.Test;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import org.xmlpull.v1.XmlPullParserFactory;import org.xmlpull.v1.XmlSerializer;//StAx :xmlpull解析步骤:public class XMLPulldemo {@Testpublic void demo3() throws Exception {// 声明一个List集合 存放Company对象List<Company> companies = new ArrayList<Company>();Company company1 = new Company();company1.setName("腾讯");company1.setAddress("深圳");company1.setPnum(2000);Company company2 = new Company();company2.setName("阿里巴巴");company2.setAddress("杭州");company2.setPnum(1800);companies.add(company1);companies.add(company2);// 1建立xmlpull序列化工厂:XmlPullParserFactory factory = XmlPullParserFactory.newInstance();XmlSerializer serializer = factory.newSerializer();// 实例化xml序列对象serializer.setOutput(new FileOutputStream("book_bak3.xml"), "utf-8");// 开始文档serializer.startDocument("utf-8", true);//文档声明 :<?xml version="1.0" encoding="utf-8" standalone="yes">serializer.startTag(null, "companies");for (Company company : companies) {serializer.startTag(null, "company");serializer.startTag(null, "name");serializer.text(company.getName());serializer.endTag(null, "name");serializer.startTag(null, "pnum");serializer.text(company.getPnum()+"");serializer.endTag(null, "pnum");serializer.startTag(null, "address");serializer.text(company.getAddress());serializer.endTag(null, "address");serializer.endTag(null, "company");}serializer.endTag(null, "companies");serializer.endDocument();}}
Company对象:
public class Company {private int pnum;private String address;private String name;public Company() {}public int getPnum() {return pnum;}public void setPnum(int pnum) {this.pnum = pnum;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
运行结果:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<companies>
<company>
<name>腾讯</name>
<pnum>2000</pnum>
<address>深圳</address>
</company>
<company>
<name>阿里巴巴</name>
<pnum>1800</pnum>
<address>杭州</address>
</company>
</companies>
在上面例子中,要注意的是第一:书写习惯问题,例如,当生成startTag标签后,最后也写上endTag以便失误遗漏。
第二是:理解对象类型序列化 ---生成----XML文档。 为什么要序列化? 用于标识区分唯一对象,并转换成字节流,方便在网络中传输数据。
0 0
- XMLPULL解析(2)---通过对象序列化生成XML文档
- Android中XML文件的序列化生成与解析
- Android中XML文件的序列化生成与解析
- Android中XML文件的序列化生成与解析
- Android中XML文件的序列化生成与解析
- 序列化生成XML文件以及Pull解析
- Android中XML文件的序列化生成与解析
- Android学习记录(1)—Android中XML文件的序列化生成与解析
- (转)Android学习记录(1)—Android中XML文件的序列化生成与解析
- 使用Xml类下的newPullParser ()、newSerializer ()方法,解析xml数据和序列化生成xml数据
- xmlPull解析网络数据(xml文件)
- 使用xmlpull解析xml
- 使用XmlPull解析XML
- xmlpull解析XML
- 使用Xmlpull解析xml
- xml解析-xmlpull
- xmlpull解析xml
- xml请求,xmlpull解析
- UiButton操作
- Android相机拍照后在系统gallery中看不到的解决办法
- one-to-one双向关联之加载
- 【C++学习】迭代器的使用:vector的操作---ShinePans
- uml 9种图之序列图
- XMLPULL解析(2)---通过对象序列化生成XML文档
- tomcat的一些设置
- fckeditor编辑器的使用
- 程序员必看的那些电影
- MySQL Vs PostgreSQL 2
- Python系列视频教程: Django【13讲】第五讲 URL配置
- POJ 2486 经典树形dp
- 后缀数组模板
- 正式在CSDN开博