*设为首页
*加入收藏
热门关键字: JAVA
>>当前位置:Java大本营>JAVA与XML>文章内容
java类序列化成xml的方法
作者: 发布时间:2007-11-17 00:13:01

【java大本营】http://www.javadby.com ,java实力站点,更新速度快,内容全面,鼓励原创,吸引了相当数量的IT学习者。  欢迎加入java交流群41970496,共同进步。

今天看了下JAVA序列化。还是一知半解。怎么也没有弄明白,怎么序列化成XML文件。处入半解状态。在网上找了很多,大部分是理论上的。没有实际的例子。功夫不负有心人,终于找到了。做了下测试终于成功。忍不住记录的下来。

    JXmlSerializable   是一个利用java反射,通过调用对象中所有以get(不区分大小写)开头的方法除去getClass方法,生成xml格式,希望与大家分享一下  
  下面是一个parent对象,包含两个child对象  生成的xml如下

    Child类

package xmlTest;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.InvocationTargetException;
public class Child extends JXmlSerializable {

 
private String _name;
 
private String _sex;
 
private int age;

 
public void setAge(int num) {
  age 
= num;
 }


 
public int getAge() {
  
return age;
 }


 
public void setName(String name) {
  _name 
= name;
 }


 
public void setSex(String sex) {
  _sex 
= sex;
 }


 
public String getName() {
  
return _name;
 }


 
public String getSex() {
  
return _sex;
 }


}



 Parent类

 

package xmlTest;

import java.io.PrintWriter;
import java.lang.reflect.Array;
import java.util.*;

public class Parent extends JXmlSerializable {

    
private String _name;
    
private String _sex;
    
private LinkedList list = new LinkedList();
    
private Vector vec = new Vector();
    
int age;

    
public void setAge(int num) {
        age 
= num;
    }


    
public int getAge() {
        
return age;
    }


    
public void setName(String name) {
        _name 
= name;
    }


    
public void setSex(String sex) {
        _sex 
= sex;
    }


    
public String getName() {
        
return _name;
    }


    
public String getSex() {
        
return _sex;
    }


    
public void addChild(Child child) {
        list.add(child);
        vec.add(child);
    }


    
public Child[] getChild() {

        Child[] aa 
= new Child[vec.size()];
        
// list.toArray(aa);
        vec.toArray(aa);
        
return aa;
    }


    
public static void main(String[] args) {
        
// TODO Auto-generated method stub
        try {
            Parent pat 
= new Parent();
            pat.setName(
"jack");
            pat.setSex(
"male");
            Child child1 
= new Child();
            child1.setName(
"tom");
            child1.setSex(
"male");
            pat.addChild(child1);
            Child child2 
= new Child();
            child2.setName(
"Marie");
            child2.setSex(
"female");
            pat.addChild(child2);
            pat.getChild();
            PrintWriter out 
= new PrintWriter("abc.xml");
            pat.toXmlSerial(out,
0);
            out.flush();

        }
 catch (Exception e) {
            e.printStackTrace();
        }


    }

}

类 JXmlSerializable

 

共2页: 上一页 1 [2] 下一页

·Java中四种XML解析技术(05-21)
·XML解析技术 (03-20)
·java中用dom解析xml(02-02)
·如何用Java实现基于XML的购物车 (01-21)
·JavaBeans至XML的相互转换 (01-20)
·XML: XSL (01-19)
·xml的转换之pdf (xml+xsl 2 pdf) (01-09)
·XML安全相关 (01-09)
·xml的转换之html (01-09)
·XMLHttpRequest and jsp servlet (12-26)
·用Spring的Resource管理SQL的XML配置文(12-22)
·使用Java解析XML文件之JDOM (12-20)
复制地址发给您的好友: [推荐文章] [返回顶部] [关闭窗口]
版权所有 Java大本营 1999-2007 转载请注明出处