博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用反射与dom4j读取javabean生成对应XML
阅读量:4693 次
发布时间:2019-06-09

本文共 3399 字,大约阅读时间需要 11 分钟。

项目中需要自定义生成一个xml,要把Javabean中的属性拼接一个xml,例如要生成以下xml

张三
18
李四
19
小红
17

我上篇文章有分享过。

 

生成这个xml,我们其实可以分析下,可以先新建一个student.java 里面有  name,age,sex属性,students  里面有多个student,那我们再新建一个students.java  里面搞个集合,然后我们通过之前我分享的工具类来操作。贴代码

1.student.java

/* * */package com.test;/** * 描述     学生类 *  * @author 小当家 * @created 2017年12月11日  */public class Student {    private String name;    private String age;    private String sex;    public Student(String name, String age, String sex) {        this.name = name;        this.age = age;        this.sex = sex;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getAge() {        return age;    }    public void setAge(String age) {        this.age = age;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }}

 

 

2.students.java

/* * */package com.test;import java.util.List;/** * 描述 * @author 小当家 * @created 2017年12月11日  */public class Students {    private List
student; public List
getStudents() { return student; } public void setStudents(List
students) { this.student = students; } }

 

3.测试

package com.test;import java.io.ByteArrayOutputStream;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.XMLWriter;public class Testxml {    public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, InstantiationException, ClassNotFoundException {        Document doc = DocumentHelper.createDocument();        //创建根节点        Element root = DocumentHelper.createElement("students");//根节点        doc.setRootElement(root);        List
list = new ArrayList
(); Student stu = new Student("张三", "18", "男"); Student stu2 = new Student("李四", "19", "男"); Student stu3 = new Student("小红", "17", "女"); list.add(stu); list.add(stu2); list.add(stu3); Students po = new Students(); po.setStudents(list); XmlUtil.copyAttrToEle(po, root);//复制对应的对象属性当到XML元素的值中 其中Students类中 private List
student; 这里的student 表示字节点 System.out.println(document2String(doc)); } /** * * 描述 document2String * @author 小当家 * @created 2017年12月11日 * @param doc * @return */ private static String document2String(Document doc) { String str = ""; try { ByteArrayOutputStream out = new ByteArrayOutputStream(); OutputFormat format = new OutputFormat(" ", true , "gb2312"); XMLWriter writer = new XMLWriter(out,format); writer.write(doc); str = out.toString("gb2312"); } catch (Exception e) { e.printStackTrace(); } return str; }}

 

如果大家有更好的方法,请指教,或者代码中有什么问题,也可以指教指教

 

转载于:https://www.cnblogs.com/Animation-programmer/p/8023643.html

你可能感兴趣的文章
【模式识别与机器学习】——SVM举例
查看>>
【转】IT名企面试:微软笔试题(1)
查看>>
IO流入门-第十章-DataInputStream_DataOutputStream
查看>>
DRF的分页
查看>>
Mysql 模糊匹配(字符串str中是否包含子字符串substr)
查看>>
python:open/文件操作
查看>>
流程控制 Day06
查看>>
Linux下安装Tomcat
查看>>
windows live writer 2012 0x80070643
查看>>
tomcat 和MySQL的安装
查看>>
Cosine Similarity
查看>>
halt和shutdown 的区别
查看>>
git常用操作
查看>>
京东SSO单点登陆实现分析
查看>>
u-boot启动第一阶段
查看>>
MySQL批量SQL插入性能优化
查看>>
定义列属性:null,default,PK,auto_increment
查看>>
用户画像展示
查看>>
C#中StreamReader读取中文出现乱码
查看>>
使用BufferedReader的时候出现的问题
查看>>