您的位置:首页 > 编程语言 > Java开发

Java SE练习 - 对dom4j解析、反射的综合练习

2017-12-13 14:41 302 查看
前言:对dom4j、反射使用的一个综合练习。

一、编写XML文件

<?xml version="1.0" encoding="UTF-8"?>
<beans>
<student className="cn.itcast.javaeevideoday02.Student">
<name>张三</name>
<age>18</age>
<sex>男</sex>
</student>
<student className="cn.itcast.javaeevideoday02.Student">
<name>李四</name>
<age>20</age>
<sex>男</sex>
</student>
<student className="cn.itcast.javaeevideoday02.Student">
<name>王五</name>
<age>22</age>
<sex>男</sex>
</student>
</beans>


二、导入jar包

在项目下新建lib文件夹,将dom4j解析jar包复制到该路径,点击jar包右键BuildPath–>Add to buildpath

三、代码实现

package cn.itcast.javaeevideoday02;

import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
*
* @author 大家都说名字长不会被发现
*
*/
public class SynthesisDemo {
public static void main(String[] args) throws Exception {

//创建SAXReader对象
SAXReader reader = new SAXReader();
//读取XML文件
Document document = reader.read("bean.xml");

//获取文件跟标签
Element rootElement = document.getRootElement();

//获取根标签下指定的所有子标签
List<Element> elements = rootElement.elements();

//创建集合对象
ArrayList<Student> stuLists = new ArrayList<>();

for (Element element : elements) {
//获取标签属性值
String className = element.attributeValue("className");
//获取子标签文本
String name = element.elementText("name");
String age = element.elementText("age");
String sex = element.elementText("sex");

//获取字节码文件对象
Class c = Class.forName(className);

//获取对象满参构造
Constructor constructor = c.getConstructor(String.class,int.class,String.class);
Object student = constructor.newInstance(name,Integer.valueOf(age),sex);

stuLists.add((Student)student);
}
System.out.println(stuLists);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java java se xml dom 反射