`
pengwei.daily
  • 浏览: 23306 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

XStream

    博客分类:
  • XML
 
阅读更多

需要的JAR包:

  • xstream-1.4.2.jar
  • xmlpull-1.1.31.jar
  • xpp3_min-1.1.4.jar

示例代码:

package xstream;

public class Address {
	
	private String addType;
	private String place;
	
	public Address(String addType, String place){
		this.addType = addType;
		this.place = place;
	}

	public String getAddType() {
		return addType;
	}

	public void setAddType(String addType) {
		this.addType = addType;
	}

	public String getPlace() {
		return place;
	}

	public void setPlace(String place) {
		this.place = place;
	}
	
	public String toString(){
		StringBuffer strBuffer = new StringBuffer();
		strBuffer.append("Address").append("\n");
		strBuffer.append("addType = ").append(addType).append("\n");
		strBuffer.append("place = ").append(place).append("\n");
		
		return strBuffer.toString();
	}
}
 
package xstream;

import java.util.Iterator;
import java.util.List;

public class Addresses {
	private List<Address> listAdd;
	
	public Addresses(List<Address> listAdd){
		this.listAdd = listAdd;
	}

	public List<Address> getListAdd() {
		return listAdd;
	}

	public void setListAdd(List<Address> listAdd) {
		this.listAdd = listAdd;
	}
	
	public String toString(){
		StringBuffer strBuffer = new StringBuffer();
		strBuffer.append("Addresses: ").append("\n");
		for(Iterator<Address> it = listAdd.iterator(); it.hasNext();){
			Address add = (Address)it.next();
			strBuffer.append(add.toString());
		}
		strBuffer.append("\n");
		
		return strBuffer.toString();
	}
}
 
package xstream;

public class Person {

	private String name;
	private String sex;
	private String tel;
	private Addresses addes;
	
	public Person(Addresses addes, String name, String sex, String tel){
		this.addes = addes;
		this.name = name;
		this.sex = sex;
		this.tel = tel;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getTel() {
		return tel;
	}

	public void setTel(String tel) {
		this.tel = tel;
	}

	public Addresses getAddes() {
		return addes;
	}

	public void setAddes(Addresses addes) {
		this.addes = addes;
	}
	
	public String toString(){
		StringBuffer strBuffer = new StringBuffer();
		strBuffer.append("Person").append("\n");
		strBuffer.append("name = ").append(name).append("\n");
		strBuffer.append("sex = ").append(sex).append("\n");
		strBuffer.append("tel = ").append(tel).append("\n");
		strBuffer.append("addes = ").append(addes.toString()).append("\n");
		
		return strBuffer.toString();
	}
}
 
package xstream;

import java.util.Iterator;
import java.util.List;

public class Persons {
	private String type;
	private List<Person> listPerson;
	
	public Persons(List<Person> listPerson, String type){
		this.listPerson = listPerson;
		this.type = type;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public List<Person> getListPerson() {
		return listPerson;
	}

	public void setListPerson(List<Person> listPerson) {
		this.listPerson = listPerson;
	}
	
	public String toString(){
		StringBuffer strBuffer = new StringBuffer();
		strBuffer.append("Persons:").append("\n");
		strBuffer.append("type = ").append(type).append("\n");
		
		for(Iterator<Person> it = listPerson.iterator(); it.hasNext();){
			Person person = (Person)it.next();
			strBuffer.append(person.toString());
		}
		
		strBuffer.append("\n");
		return strBuffer.toString();
	}
}
 
package xstream;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;

import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

import com.thoughtworks.xstream.XStream;

public class XStreamDemo {

	public static void main(String[] args) {
		testXML2Bean();
	}
	
	public static void testXML2Bean(){
		System.out.println("将下面的XML对象转换为Bean \n");
		
		XStream xstream = new XStream();
		xstream.alias("address", Address.class);
		xstream.alias("addresses", Addresses.class);
		xstream.alias("person", Person.class);
		xstream.alias("persons", Persons.class);
		
		String xml = readXMLtoObject("d:\\XStream.xml");
		Persons persons = (Persons)xstream.fromXML(xml);
		
		System.out.println(persons.toString());
	}
	
	public static void testBean2XML(){
		System.out.println("将下面的Java对象转换为XML! \n");
		
		XStream xstream = new XStream();
		xstream.alias("address", Address.class);
		xstream.alias("addresses", Addresses.class);
		xstream.alias("person", Person.class);
		xstream.alias("persons", Persons.class);
		
		Persons persons = getPersons();
		System.out.println(persons.toString());
		String xml = xstream.toXML(persons);
		
		writeXML2file(xml, "d:\\XStream.xml");
	}
	
	/**
	 * Structure a person object
	 * @return
	 */
	public static Persons getPersons(){
		Address add1 = new Address("宿舍", "苏州工业园区菁英公寓");
		Address add2 = new Address("公司", "苏州工业园区创意产业园");
		List<Address> addList1 = new ArrayList<Address>();
		addList1.add(add1);
		addList1.add(add2);
		
		Address add3 = new Address("宿舍", "苏州工业园区凤凰城");
		Address add4 = new Address("公司", "苏州工业园区万龙智能开关股份有限公司");
		List<Address> addList2 = new ArrayList<Address>();
		addList2.add(add3);
		addList2.add(add4);
		
		Addresses addes1 = new Addresses(addList1);
		Addresses addes2 = new Addresses(addList2);
		
		Person person1 = new Person(addes1, "Wei", "Man", "123456789");
		Person person2 = new Person(addes2, "Juan", "Woman", "987654321");
		
		List<Person> personList = new ArrayList<Person>();
		personList.add(person1);
		personList.add(person2);
		
		Persons persons = new Persons(personList, "001号家庭");
		
		return persons;
	}
	
	/**
	 * Write XML string into XML file
	 * @param xml
	 * @param filePath
	 */
	public static void writeXML2file(String xml, String filePath){
		try {
			FileWriter fileWriter = new FileWriter(filePath);
			fileWriter.write(xml);
			
			if(fileWriter != null)
				fileWriter.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * Read XML file into string
	 * @param filePath
	 * @return
	 */
	public static String readXMLtoObject(String filePath){
		
		try {
			BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
			StringBuffer strBuffer = new StringBuffer();
			String line = bufferedReader.readLine();
			
			while(line != null){
				strBuffer.append(line);
				line = bufferedReader.readLine();
			}
			
			if(bufferedReader != null)
				bufferedReader.close();
			
			return strBuffer.toString();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		return null;
	}
}

 

 

 

分享到:
评论

相关推荐

    xstream-1.4.15.jar

    XStream 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...

    xstream-1.4.11-API文档-中文版.zip

    赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.11.pom; 包含翻译后的API文档:xstream-1.4.11-...

    xstream-1.4.2.jar

    《XStream详解与应用》 XStream是一款强大的Java库,用于将对象序列化为XML,同时也能从XML数据中反序列化回对象。在标题"xstream-1.4.2.jar"中,我们看到的是XStream的一个特定版本——1.4.2。这个版本包含了...

    最齐全的xstream1.4.8.jar

    最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar ...

    com.thoughtworks.xstream.XStream操作XML和java对象的一些用法

    XStream库提供了一个简单、直观的方式来实现这种转换,使得XML序列化和反序列化变得非常方便。本篇将详细介绍XStream如何处理XML与Java对象的相互转换,以及如何处理List、Map等集合类型的数据。 首先,XStream是一...

    xstream-1.4.8最齐全的jar包

    XStream是一款强大的Java库,主要用于将Java对象序列化为XML,以及将XML反序列化回Java对象。在Java开发中,这种能力对于数据持久化、网络传输或配置存储等场景非常有用。标题中的"xstream-1.4.8最齐全的jar包"表明...

    springMVC整合xStream实现对象和xml转换

    XStream则是一个Java库,用于将Java对象序列化为XML,以及将XML反序列化回Java对象。这个过程在处理数据交换或持久化时非常有用,尤其是在Web服务和API中。当我们需要在SpringMVC中返回XML响应时,可以结合使用...

    xstream-1.4.8的jar包、源码、说明文档.zip

    XStream 是一个强大的 Java 库,它允许程序员将 Java 对象序列化为 XML,反之亦然。这个压缩包“xstream-1.4.8的jar包、源码、说明文档.zip”包含了 XStream 的核心组件,使得用户可以深入了解其工作原理并进行定制...

    xml解析及使用XStream实现javaBean与xml之间的转换

    - 创建XStream实例:`XStream xstream = new XStream();` - 配置XStream:可设置命名空间、类型别名、日期格式等,如`xstream.alias("user", User.class);` - 将JavaBean转换为XML:`String xml = xstream.toXML...

    xstream.jar及其他依赖jar包

    "xstream.jar及其他依赖jar包"是解决这一问题的重要工具,它包括了xstream-1.4.10.jar、xpp3-1.1.4c.jar和xmlpull_1_0_5.jar这三个文件。这些jar包提供了全面的Java对象到XML以及XML到Java对象的转换功能,简化了...

    Oracle Database XStream Guide 11g Release 2 (11.2)-302

    Oracle Database XStream Guide 11g Release 2 (11.2)-302 Oracle Database XStream 是 Oracle 公司推出的一个数据捕获和事件处理工具,旨在帮助用户实时捕获和处理数据库中的数据变化。下面是 Oracle Database ...

    xstream相关的jar包

    XStream是一款强大的Java库,用于将Java对象序列化为XML,反之亦然。这个库的主要优点在于其简单易用的API和对复杂对象图的处理能力。在标题中提到的"Xstream相关的jar包",是指为了使用XStream库,需要引入的依赖...

    Java用xStream拼接xml

    当需要将数据转换为XML格式以便于传输或处理时,工具如xStream就显得尤为重要。Java中的xStream库提供了一个简单易用的方式来将Java对象序列化为XML,反之亦然,即反序列化XML回Java对象。 **xStream简介** xStream...

    XStream 1.4.11 jar包

    **XStream 1.4.11 jar包详解** XStream 是一个强大的 Java 库,它提供了一种简单且高效的方式来序列化和反序列化 Java 对象为 XML,反之亦然。这个工具库的设计目标是使得 XML 和 Java 对象之间的转换变得极其简单...

    XStream的Date转换 @XStreamConverter DateConverter

    在Java开发中,数据序列化和反序列化是常见的需求,XStream库提供了一个方便的解决方案。XStream是一个用于XML、JSON和HTML的Java库,它能够将Java对象转化为XML,反之也能将XML数据还原为Java对象。在这个场景中,...

    xstream解析依赖包

    《XStream解析依赖包详解》 在Java开发中,数据序列化是一个不可或缺的环节,它使得对象的状态可以被保存和恢复。XStream是一款强大的Java库,用于将Java对象转换为XML,反之亦然,极大地简化了序列化和反序列化的...

    xStream完整Jar包

    **XStream 概述** XStream 是一个 Java 库,用于将对象序列化为 XML,以及从 XML 反序列化回对象。它提供了一种简单而直观的方式来处理 XML 数据,使得 XML 文档与 Java 对象之间的转换变得轻而易举。这个“xStream...

    xstream-1.3.1.zip

    《XStream 1.3.1:Java对象到XML的高效转换工具》 XStream是一款强大的Java库,它能够将Java对象序列化为XML,并能从XML反序列化回Java对象。这个“xstream-1.3.1.zip”文件包含了一个名为“xstream-1.3.1.jar”的...

    xstream最新版 - xstream-1.4.18.jar

    xstream最新版jar包

    XStream解析XML实例

    **XStream解析XML实例** 在Java开发中,处理XML数据是一项常见的任务,XStream库提供了一个简单而强大的方式来将Java对象序列化为XML,以及从XML反序列化回Java对象。这个实例将深入探讨如何使用XStream进行XML操作...

Global site tag (gtag.js) - Google Analytics