zoukankan      html  css  js  c++  java
  • xml生成javabean(zhuan)

    package com.dom4j;

    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.lang.reflect.Field;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;

    import java.util.ArrayList;
    import java.util.Iterator;
    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;



    public class Xml2Object<T>{
        
        public static void main(String[] args){
            Xml2Object d=new Xml2Object();
            User user=new User();
            User user1=new User("姓名1",18,"男");
            User user2=new User("姓名2",19,"女");
            User user3=new User("石头",20,"女");
            
            List<User> users=new ArrayList<User>();
            users.add(user1);
            users.add(user2);
            users.add(user3);
            
            try {
                d.writeXmlDocument(user, users, "GBK", "WebRoot/xml/student.xml");
            } catch (Exception e) {
                System.out.println("生成xml失败");
                e.printStackTrace();
            }
            /*
            Xml2Object<User> d=new Xml2Object<User>();
            User user=new User();
            
            List<User> list=d.readXML("WebRoot/xml/student.xml",user);
            System.out.println("XML文件读取结果:");
            for(int i=0;i<list.size();i++){
                User username=(User)list.get(i);
                System.out.println("name"+username.getName());
                System.out.println("age"+username.getAge());
                System.out.println("sex"+username.getSex());
            }*/
            
        }
        
        @SuppressWarnings("hiding")
        public <T> void writeXmlDocument(T obj,List<T> entityPropertys,String Encode,String XMLPathAndName) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, IOException{
            long lasting=System.currentTimeMillis();
            
            XMLWriter writer=null;
            OutputFormat format=OutputFormat.createCompactFormat();
            format.setEncoding(Encode);//设置XML文件的编码方式
            
            String filePath=XMLPathAndName;
            File file=new File(filePath);
            if(file.exists()){
                file.delete();
            }
            
            Document document=DocumentHelper.createDocument();
            String rootname=obj.getClass().getSimpleName();
            Element root=document.addElement(rootname+"s");
            Field[] properties=obj.getClass().getDeclaredFields();
            
            for(T t:entityPropertys){
                Element secondRoot=root.addElement(rootname);
                
                for(int i=0;i<properties.length;i++){
                    Method meth=t.getClass().getMethod(
                            "get"
                            +properties[i].getName().substring(0,1).toUpperCase()
                            +properties[i].getName().substring(1)
                            );
                    secondRoot.addElement(
                            properties[i].getName()
                            ).setText(meth.invoke(t).toString());
                }
            }
            
            writer =new XMLWriter(new FileWriter(file),format);
            writer.write(document);
            writer.close();
            long lasting2=System.currentTimeMillis();
            System.out.println("写入XML文件结束,用时"+(lasting2-lasting)+"ms");
            
        }

  • 相关阅读:
    高速排序(递归与分治的思想)
    silverlight wcf mvvm
    黑龙江绿色食品青年电商销售大赛开幕,绿色巨人最终发力做电商了
    ecnu 1244
    可穿戴KEY带来的身份认证的革命
    深入理解7816(3)-----关于T=0 【转】
    深入理解7816(1)---- 关于F/D和etu【转】
    深入理解7816(2)---关于ATR【转】
    [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程
    Ubuntu16.04下搭建开发环境及编译tiny4412 Android系统【转】
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/5512330.html
Copyright © 2011-2022 走看看