`
freeroy
  • 浏览: 74632 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

根据对象生成XML文档

    博客分类:
  • Java
 
阅读更多

根据对象生成XML文档. 使用Java提供的java.beans.XMLEncoder
和java.beans.XMLDecoder类

一、生成的xml文件如下:AStudent.xml

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.5.0" class="java.beans.XMLDecoder">
<object class="StudentBean">
<void property="age">
<int>15</int>
</void>
<void property="gender">
<string>male</string>
</void>
<void property="name">
<string>wamgwu</string>
</void>
<void property="phone">
<string>55556666</string>
</void>
</object>
</java>

二、描述学生的JavaBean

/** *//**
* 描述学生的JavaBean
*/

public class StudentBean ...{
// 学生姓名
private String name;
// 学生性别
private String gender;
// 学生年龄
private int age;
// 学生电话号码
private String phone;
public String toString()...{
StringBuffer sb
= new StringBuffer();
sb.append(
"姓名:").append(this.name).append("");
sb.append(
"性别:").append(gender).append("");
sb.append(
"年龄:").append(age).append("");
sb.append(
"电话:").append(phone);
return sb.toString();
}


/** *//**
*
@return 返回 age。
*/

public int getAge() ...{
return age;
}

/** *//**
*
@param age 要设置的 age。
*/

public void setAge(int age) ...{
this.age = age;
}

/** *//**
*
@return 返回 gender。
*/

public String getGender() ...{
return gender;
}

/** *//**
*
@param gender 要设置的 gender。
*/

public void setGender(String gender) ...{
this.gender = gender;
}

/** *//**
*
@return 返回 name。
*/

public String getName() ...{
return name;
}

/** *//**
*
@param name 要设置的 name。
*/

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

/** *//**
*
@return 返回 phone。
*/

public String getPhone() ...{
return phone;
}

/** *//**
*
@param phone 要设置的 phone。
*/

public void setPhone(String phone) ...{
this.phone = phone;
}

}

三、主程序

import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/** *//**
* 根据对象生成XML文档.
* 使用Java提供的java.beans.XMLEncoder和java.beans.XMLDecoder类。
* 这是JDK 1.4以后才出现的类
*/

public class Object2XML ...{
/** *//**
* 对象输出到XML文件
*
@param obj 待输出的对象
*
@param outFileName 目标XML文件的文件名
*
@return 返回输出XML文件的路径
*
@throws FileNotFoundException
*/

public static String object2XML(Object obj, String outFileName)
throws FileNotFoundException ...{
// 构造输出XML文件的字节输出流
File outFile = new File(outFileName);
BufferedOutputStream bos
= new BufferedOutputStream(new FileOutputStream(outFile));
// 构造一个XML编码器
XMLEncoder xmlEncoder = new XMLEncoder(bos);
// 使用XML编码器写对象
xmlEncoder.writeObject(obj);
// 关闭编码器
xmlEncoder.close();

return outFile.getAbsolutePath();
}

/** *//**
* 把XML文件解码成对象
*
@param inFileName 输入的XML文件
*
@return 返回生成的对象
*
@throws FileNotFoundException
*/

public static Object xml2Object(String inFileName)
throws FileNotFoundException ...{
// 构造输入的XML文件的字节输入流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(inFileName));
// 构造一个XML解码器
XMLDecoder xmlDecoder = new XMLDecoder(bis);
// 使用XML解码器读对象
Object obj = xmlDecoder.readObject();
// 关闭解码器
xmlDecoder.close();

return obj;
}

public static void main(String[] args) throws IOException ...{
// 构造一个StudentBean对象
StudentBean student = new StudentBean();
student.setName(
"wamgwu");
student.setGender(
"male");
student.setAge(
15);
student.setPhone(
"55556666");

// 将StudentBean对象写到XML文件
String fileName = "AStudent.xml";
Object2XML.object2XML(student, fileName);
// 从XML文件读StudentBean对象
StudentBean aStudent = (StudentBean)Object2XML.xml2Object(fileName);
// 输出读到的对象
System.out.println(aStudent.toString());
}

}

运行结果:
C:java
>java Object2XML姓名:wamgwu; 性别:male; 年龄:15; 电话:55556666
分享到:
评论
1 楼 woyaowenzi 2013-01-15  
这玩意生成出来的XML不怎么好看啊。解析也费劲。

相关推荐

    使用jaxb根据xsd生成xml文档

    **使用JAXB根据XSD生成XML文档** ...这个过程包括创建XSD文件、生成Java类、配置JAXB绑定、创建和填充Java对象,最后使用`Marshaller`生成XML文档。了解并熟练掌握这一流程,能够极大地提高XML处理的效率和准确性。

    生成XML文件ABAP程序

    这一步是创建XML文档的基础。示例代码中通过`cl_ixml=&gt;create()`来创建IXML工厂对象,并将其存储在变量`l_ixml`中。 ### 3. 创建DOM对象模型 创建IXML工厂对象后,下一步就是创建DOM对象模型。DOM(Document ...

    .net根据数据库创建xml文件

    可以使用XmlDocument或XDocument类来创建XML文档。在读取数据库记录时,为每条记录创建一个XmlNode或XmlElement,并设置相应的属性和子节点。 ```csharp using System.Xml; // 创建XML文档 XmlDocument xmlDoc = ...

    C# 生成xml文件,编码为utf-8方法

    在 C# 中,生成 XML 文件可以使用 XmlSerializer 类,该类提供了 serialize 方法,可以将对象转换为 XML 字符串。为了将生成的 XML 文件编码为 UTF-8,需要使用 MemoryStream 和 StreamWriter 类。 首先,需要创建...

    java 通过模板生成 xml,发送报文

    1. **创建XML文档对象**:在Java中,我们可以使用`DocumentBuilderFactory`和`DocumentBuilder`类来创建一个`Document`对象,这个对象代表整个XML文档。 ```java DocumentBuilderFactory factory = ...

    根据xml schema生成xml

    这篇博客文章“根据XML Schema生成XML”探讨了如何使用XML Schema来创建符合规范的XML文档。 首先,理解XML Schema的基本元素是关键。XML Schema定义了一系列的元素(element)、属性(attribute)和数据类型(data...

    JAVA对象序列化保存为XML文件的工具类

    另一方面,`objectXmlDecoder`方法打开XML文件,创建一个`XMLDecoder`实例,读取XML数据并将其转换回Java对象。这些对象被添加到一个`ArrayList`中并返回。注意,如果XML文件中包含多个序列化的对象,`XMLDecoder`将...

    Xml文件自动生成C# Class类

    XML序列化是指将对象的状态转换为XML文档,反之亦然。在我们的案例中,我们将反向操作,即从XML文档生成类。这通常通过以下步骤实现: 1. **分析XML结构**:首先,我们需要解析XML文件,理解其节点结构和属性。这...

    java对象生成xml数据

    JAXB(Java Architecture for XML Binding)是Java提供的一种标准API,它允许开发者轻松地在Java对象和XML文档之间进行映射。在这个过程中,`JAXBContext`和`Marshaller`扮演了关键角色。 `JAXBContext`是JAXB的...

    webservice之使用jaxb把xml转换Object或把对象转换成xml文件

    在这个例子中,`User`类是根据XSD文件生成的,`unmarshal`方法读取XML文件并将其转换为`User`对象。 三、Java对象到XML转换 1. 对象实例化:创建Java对象并设置其属性。 2. 序列化XML:使用`Marshaller`接口将Java...

    根据word的xml模板生成word文件

    根据 Word 的 XML 模板生成 Word 文件 概述: 本文将详细介绍如何根据 Word 的 XML 模板生成 Word 文件,包括服务位置、参数设置、日期类型字段处理等方面的知识点。 一、服务位置 ...

    java创建xml对象

    例如,使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`类,可以创建XML文档的根元素,然后添加子元素、属性等。 ```java DocumentBuilderFactory factory = DocumentBuilderFactory.new...

    根据目录生成XML文件,根据xml目录树生成目录

    5. **生成XML文件**:最后,所有这些XML元素会组合成一个完整的XML文档,并保存到磁盘上。 接下来,我们讨论如何根据XML目录树生成目录。这通常涉及以下操作: 1. **解析XML**:读取XML文件并解析其内容,生成一个...

    xml文件自动转成java对象工具

    XSD是XML的一种规范,定义了XML文档的结构和数据类型,它提供了一种方式来验证XML文档是否符合预设的规则。XSD文件转Java工具能够基于XSD文件生成对应的Java类,这些类包含了与XSD定义的元素和属性相对应的字段和...

    freemarker生成xml示例

    这个示例是关于如何使用Freemarker来生成XML文件,对于初学者来说,理解这个过程有助于掌握Freemarker的基本用法和XML的生成技巧。 在Java中,Freemarker与数据模型结合,通过模板文件生成输出。对于XML生成,首先...

    JaxbContext生成xml文件或java类对象转化注解

    JAXBContext 生成 XML 文件或 Java 类对象转换注解 JAXB(Java API for XML Binding)是一种将 Java 对象与 XML 进行转换的技术。JAXB 提供了一个快速便捷的方式将 Java 对象与 XML 进行转换。在 JAX-WS(Java 的 ...

    Xml工具方法

    2. **根据XML对象生成XML文件** 这个过程是对象到XML的序列化。同样,可以使用JAXB来实现。首先,我们需要一个Java对象,然后通过JAXBContext和Marshaller接口,将其转换为XML格式的输出。 例如: ```java ...

    JAXB 生成XML文件

    Java Architecture for XML Binding (JAXB) 是Java平台上的一个标准技术,用于在Java对象和XML文档之间进行数据绑定。它允许开发人员通过简单的注解(annotations)将Java类与XML Schema映射,从而实现XML文档的序列...

    使用c++生成xml文件

    2. **创建XML文档对象**:使用`TiXmlDocument`类创建一个表示XML文档的对象,例如`TiXmlDocument doc;`。 3. **创建XML元素**:通过`TiXmlElement`类创建XML元素。例如,要创建一个名为`root`的根元素,可以写成`...

    用ruby读excel文件生成xml文件

    创建XML文档结构,通常以根元素开始,然后逐行添加数据: ```ruby xml = Nokogiri::XML::Builder.new do |xml| xml.root { |root| data.each do |row| root.row do |row_node| row.each { |key, value| row_...

Global site tag (gtag.js) - Google Analytics