xml文件和java对象之间转换 例:
package com.zgs.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import com.zgs.entity.Order;
/**
*
* @author Administrator
* 2015-4-6
*
*/
public class XMLUtil{
/**
* 解析XML文件为对象集合
* InputStream Is为Xml文件流
* @return
*/
public static List XMLToList(InputStream Is)throws Exception{
SAXReader saxReader=new SAXReader();
Document doc=saxReader.read(Is);
//获取根元素
Element root=doc.getRootElement();
//获取集合元素
List<Element> orders=root.elements("order");
List<Order> list=new ArrayList<Order>();
//遍历出集合元素的值
for(Element e:orders){
Order o=new Order();
o.setName(e.elementText("name"));
o.setDest(e.elementText("dest"));
o.setFlight(e.elementText("flight"));
o.setTime(e.elementText("time"));
o.setType(e.attributeValue("type"));
list.add(o);
}
return list;
}
public static void listToXML(OutputStream os,List<Order> orders)throws Exception{
//创建doc对象
Document doc=DocumentHelper.createDocument();
//创建根元素
Element root=doc.addElement("orders");
//创建order元素
for(Order o:orders){
Element order=root.addElement("order");
order.addElement("name").setText(o.getName());
order.addElement("dest").setText(o.getDest());
order.addElement("flight").setText(o.getFlight());
order.addElement("time").setText(o.getTime());
order.addAttribute("type", o.getType());
}
//定义输出格式
OutputFormat of=OutputFormat.createPrettyPrint();
//输出list为xml
XMLWriter out=new XMLWriter(os, of);
out.write(doc);
out.close();
os.close();
}
public static void main(String[] args) throws Exception{
// List orders=new ArrayList<Order>();
// Order o1=new Order("zgs", "china", "a322", "2015-01-01", "sw");
// Order o2=new Order("zgs1", "china1", "a3221", "2015-01-01", "sw1");
// orders.add(o1);
// orders.add(o2);
File file=new File("C:\\Users\\Administrator\\Workspaces\\config\\order.xml");
// FileOutputStream fos=new FileOutputStream(file);
// listToXML(fos, orders);
FileInputStream fis=new FileInputStream(file);
List<Order> list=XMLToList(fis);
for(int i=0;i<list.size();i++){
System.out.println(list.get(i).getName());
System.out.println(list.get(i).getDest());
System.out.println(list.get(i).getFlight());
System.out.println(list.get(i).getTime());
System.out.println(list.get(i).getType());
}
}
分享到:
相关推荐
XML文件自动转换为Java对象工具是一种实用的开发辅助软件,它可以帮助程序员快速地将XML数据映射到Java类,从而简化了数据处理的过程。在Java开发中,XML常被用作数据交换格式,但手动编写Java类来表示XML结构既耗时...
接着,你可以将Java对象转换为XML字符串: ```java Person person = new Person(); person.setName("John"); person.setAge(30); String xml = xstream.toXML(person); System.out.println(xml); ``` 反之,如果...
2. **Marshaller**: 将Java对象转换为XML文档。 3. **Binder**: 用于在Java类和XML Schema之间建立映射关系。 ### XML到Java对象的转换 要将XML转换为Java对象,首先需要一个对应的Java类,该类的字段与XML元素...
xml报文和java对象互相转换 相关jar包和测试代码,可以与castor插件java对象和XML自动绑定maping文件生成和java对象一键生成工具1.2(https://download.csdn.net/download/kemoing/10864595)完美配合使用
2. 序列化XML:使用`Marshaller`接口将Java对象转换为XML文档。例如: ```java JAXBContext jaxbContext = JAXBContext.newInstance(User.class); Marshaller marshaller = jaxbContext.createMarshaller(); ...
要将这个Java对象转换为XML,可以这样做: ```java import com.thoughtworks.xstream.XStream; // 创建XStream实例 XStream xstream = new XStream(); // 配置XStream,使其忽略默认的无参构造函数 xstream....
- 反之,使用`Marshaller.marshal()`方法将Java对象转换为XML。 以压缩包中的`TestXMLtoBean`为例,假设我们有一个`Person`类: ```java @XmlRootElement(name = "person") public class Person { @XmlElement...
在Java编程中,我们经常需要将XML文件的数据转换为Java对象,以便于处理和操作。Apache Commons Betwixt库提供了一种简单的方法来实现这个转换。 Apache Commons Betwixt是Apache软件基金会的一个项目,它提供了一...
虽然`XMLEncoder`和`XMLDecoder`提供了一种方便的方式来处理XML和Java对象之间的转换,但它们并不总是最佳选择。例如,它们可能无法处理复杂的对象结构或自定义的XML格式。在这些情况下,可能需要使用更强大的库,如...
simple-xml2object是一个简单实用的xml和JAVA对象转换的类库,jar包很小,而且不需要任何依赖包。 下载后,压缩包包含一个jar包,导入即可。包含一个测试类,有详细的注释展示用法。还包含一个中文文档。
3. JAXB:JAXB提供`Marshaller`类,可以将Java对象转换为XML。只需调用`marshal()`方法,传入Java对象和输出目标(如文件或流),即可完成转换。 三、第三方库:除了Java自带的API外,还有一些优秀的第三方库,如...
使用`JAXBContext`实例化一个marshaller对象,然后调用其`marshal()`方法将Java对象转换为XML字符串或文件。 (5) **XML反序列化** 同样,通过`JAXBContext`创建一个unmarshaller对象,调用其`unmarshal()`方法,...
Java Architecture for XML Binding (JAXB) 是一个Java标准,它提供了在Java对象和XML文档之间进行自动转换的能力。这项技术极大地简化了XML数据处理,使得开发者可以方便地将Java对象序列化为XML,或者从XML数据中...
- **序列化**: XStream可以将一个Java对象转换成XML字符串,这个过程叫做对象的序列化。通过简单的API调用,开发者可以将复杂的Java对象结构转化为易于理解和处理的XML格式。 - **反序列化**: 反之,它也能将XML...
6. **反向操作**:如果需要将Java对象转换回XML,可以创建`Marshaller`,然后调用`Marshaller.marshal()`方法将Java对象写入XML文件。 在描述中提到的DTO(数据传输对象)是软件设计模式中的一种,用于在系统组件...
这使得我们可以轻松地将Java对象转换为XML文档,反之亦然。这个过程对于处理复杂的对象结构尤其有用,因为xStream能够自动处理嵌套的对象和集合。 以下是使用xStream进行转换的基本步骤: 1. **引入依赖**:首先,...
Java作为一种强类型、面向对象的编程语言,有时需要将XML数据转换为Java对象,或者将Java对象转换为XML格式的数据,以实现数据的序列化和反序列化。这种转换过程对于数据交换和持久化至关重要。 在Java中,XStream...
"java转换xml、list、map和json" ...本文主要讲述了Java中将xml、list、map和json之间的转换的相关知识点,包括xml和map之间的转换、xml和list之间的转换、xml和json之间的转换、map和json之间的转换等。
你可以通过DOM API创建和操作XML文档,然后将这个文档对象转换为字符串输出。例如,使用`Transformer`和`TransformerFactory`: ```java import javax.xml.transform.Transformer; import javax.xml.transform....
2. **XML序列化**: 将Java对象转换为XML文档的过程称为序列化。JAXB提供了`Marshaller`接口来实现这个功能。开发者可以创建一个Marshaller实例,然后调用`marshal()`方法将Java对象写入XML文档或输出流。 3. **XML...