根据对象生成XML文档

标签: 对象 xml 文档 | 发表时间:2013-12-25 19:13 | 作者:datou90004
出处:http://www.iteye.com
根据对象生成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



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [对象 xml 文档] 推荐:

根据对象生成XML文档

- - 企业架构 - ITeye博客
使用Java提供的java.beans.XMLEncoder. 和java.beans.XMLDecoder类. 一、生成的xml文件如下:AStudent.xml. 二、描述学生的JavaBean. * 描述学生的JavaBean.    sb.append("姓名:").append(this.name).append(";   ");.

文档抽象模型xml,xml解析生成pdf,word文档

- - CSDN博客推荐文章
            

Android XML文档解析(一)——SAX解析

- - CSDN博客移动开发推荐文章
       此文章仅作为学习交流所用.        转载或引用请务必注明原文地址:.        或联系作者:[email protected] .     XML:extensible markup language,可扩展标记语言. 与HTML(超文本标记语言,即Hypertext Markup Language)一样,XML也是 标准通用标记语言 (SGML) 的子集,非常适合 Web 传输.

XML to tree XML 树

- Bloger - 博客园-首页原创精华区
前面发了一个 html to tree 再发一个 xml to tree. 版权所有:版权所有(C) 2009. 文件名称:xml2tree.js. 完成日期:2009-12-22. 页:http://www.chaige.net */ var XML2Tree = function (ini) {.

通过JAXB实现完成java对象和xml的互相转换

- - ITeye博客
在项目中我们常常需要将java对象转为Xml,将xml转为java对象,这些繁琐的操作我们使用JAXB的话就可以很轻松的实现,一起看一个例子吧. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

xml sax解析

- - 移动开发 - ITeye博客
最近一直在做接口,主要用对xml的解析用的是sax,下面我对sax的几种写法做了一个测试:. System.out.println("耗时:"+(end-start));. System.out.println("当前 Java 虚拟机中的使用内存量:" + (freeMemory01-freeMemory02) + " 字节");.

jquery操作xml

- - CSDN博客Web前端推荐文章
jquery真的很强大,虽然一直在用jquery,不用一直都没有深入,这几天重新学习了一下,不得不感叹她的强大,已经让我深深入迷. 这里记录一下,她是怎么快速地操作xml的.. 这里我们有一个xml文件:. jquery如何操作呢,总的思想,就是和操作dom差不多的方法. 首先我们获取这个文件的内容:(我先引入jquery库哈).

JSON与XML

- - CSDN博客推荐文章
   目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信大家都很熟悉. XML不仅能处理数字和文字等经典的数据,还可以管理文件,格式化,图像,音频,视频,以及更多.  JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成. 如今,我们经常会面临创建数据文件时,JSON和XML之间的选择.

XML和JSON

- - 四火的唠叨
不久前看到一个讨论帖,说的是XML和JSON的比较,说着说着后来就变成了JSON到底比XML牛逼在哪里. 不吹不黑,客观地来比较一下二者的异同. 有的情况下是的,但也不一定,比较这样的片段:. 二者信息量几乎均等,XML看起来并不显得多么冗余. 有恰当的编辑器,二者都可以有比较美观的缩进表达. 当然,也有很多情况我们可以看到XML要比JSON啰嗦(有人说JSON是fat-free alternative to XML),比如XML写这样的东西:.

Android PULL解析XML

- - CSDN博客移动开发推荐文章
int eventType = parser.getEventType();//产生第一个事件. while(eventType!=XmlPullParser.END_DOCUMENT){//只要不是文档结束事件. String name = parser.getName();//获取解析器当前指向的元素的名称.