XStream解析XML学习一
2011-03-05 12:19
357 查看
今天看到在Android上面写的一个程序,解析xml使用的是XStream技术,以前没有听说过,今天来把它学习一下,对于简单的使用来说这个是比较简单的。这个例子是参照官网上面的例子写的:http://xstream.codehaus.org/tutorial.html
1.首先构造想要序列化的类
Person.java:
PhoneNumber.java:
2.初始化XStream并序列化和反序列化。
Stream xStream = new XStream();
你需要xstream-[version].jar and xpp3-[version].jar在classpath中。XPP3是一个非常快的XML拉式转换器工具。如果你不想包含这个依赖,你可以使用标准的JAXP DOM转换器来代替。
XStream xStream = new XStream(new DomDriver());//不需要XPP3库
这里要特别说明的是XStream xStream2=new XStream();这样会出错,使用原来的
看一下运行的结果:
test.xml:
反序列化在控制台输出的结果:
1.首先构造想要序列化的类
Person.java:
public class Person { private String firstname; private String lastname; private PhoneNumber phone; private PhoneNumber fax; // ... constructors and methods public Person(String firstname, String lastname) { super(); this.firstname = firstname; this.lastname = lastname; } public void setPhone(PhoneNumber phoneNumber) { this.phone = phoneNumber; } public void setFax(PhoneNumber phoneNumber) { this.fax = phoneNumber; } @Override public String toString() { return "FirstName:" + firstname + ",LastName:" + lastname + "phone.Code:" + phone.getCode() + "phone.Number:" + phone.getNumber() + "fax:" + fax.getCode() + "fax.Number:" + fax.getNumber(); } }
PhoneNumber.java:
public class PhoneNumber { private int code; private String number; // ... constructors and methods public PhoneNumber(int code, String number) { super(); this.code = code; this.number = number; } public int getCode() { return code; } public String getNumber() { return number; } }
2.初始化XStream并序列化和反序列化。
Stream xStream = new XStream();
你需要xstream-[version].jar and xpp3-[version].jar在classpath中。XPP3是一个非常快的XML拉式转换器工具。如果你不想包含这个依赖,你可以使用标准的JAXP DOM转换器来代替。
XStream xStream = new XStream(new DomDriver());//不需要XPP3库
这里要特别说明的是XStream xStream2=new XStream();这样会出错,使用原来的
public class XStreamTest { public static void main(String[] args) throws FileNotFoundException { //Initializing XStream XStream xStream=new XStream(); xStream.alias("person", Person.class); xStream.alias("personnumber", PhoneNumber.class); //Serializing an object to XML Person joe = new Person("Joe", "Walnes"); joe.setPhone(new PhoneNumber(123, "1234-456")); joe.setFax(new PhoneNumber(123, "9999-999")); FileOutputStream fileOutputStream=new FileOutputStream(new File("test.xml")); xStream.toXML(joe,fileOutputStream); //Deserializing an object back from XM XStream xStream2=new XStream(); FileInputStream fileInputStream=new FileInputStream(new File("test.xml")); Person person=(Person)xStream.fromXML(fileInputStream); System.out.println(person.toString()); } }
看一下运行的结果:
test.xml:
<person> <firstname>Joe</firstname> <lastname>Walnes</lastname> <phone> <code>123</code> <number>1234-456</number> </phone> <fax> <code>123</code> <number>9999-999</number> </fax> </person>
反序列化在控制台输出的结果:
FirstName:Joe,LastName:Walnesphone.Code:123phone.Number:1234-456fax:123fax.Number:9999-999
相关文章推荐
- XStream解析XML学习一
- java解析xml之xstream学习
- 21天学习android开发教程之XML解析与生成
- IOS学习之十六:网络数据的XML解析
- 使用jar包XStream解析xml数据
- 安卓xml使用第三方框架Xstream解析
- xstream解析xml字符串和生成对象
- AS3----Spring 框架学习笔记(一)----xml标签解析
- 使用xstream解析XML转换成带泛型的对象
- IOS学习:常用第三方库(GDataXMLNode:xml解析库)
- android XML解析学习——Pull方式
- 黑马程序员------学习笔记(3)XML解析
- Xstream解析XML
- java学习笔记:使用dom4j解析xml
- Android XML解析学习——Pull方式
- XML入门学习笔记之XML解析技术---DOM解析
- 学习解析XML(1)
- android XMl 解析神奇xstream 二: 把对象转换成xml
- Andorid中使用Jsoup解析库解析XML、HTML、Dom节点---第三方库学习笔记(三)
- Struts逐步学习(3)-struts-config.xml文件解析