反射创建对象_Java学习之使用DOM4J解析XML,使用反射创建对象

9fbd61c17e51c5bd0eb6cc49bbb6d7d6.png

47c43f3deba9c426e05c0f1d2dbac3db.png

建立Employee类,属性包含上面表格的列。并将上题中的表格对应的XML数据进行解析,通过反射机制在程序中创建代表3行数据的3个Employee对象

1、创建一个Employee类:

package com.chenpeng.Employee;

public class Employee {
	private int id;
	private String name;
	private int age;
	private String job;
	private double salary;
	private double subsidy;
	public Employee() {
		super();
	}
	
	public Employee(int id, String name, int age, String job, double salary, double subsidy) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.job = job;
		this.salary = salary;
		this.subsidy = subsidy;
	}

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getJob() {
		return job;
	}
	public void setJob(String job) {
		this.job = job;
	}
	public double getSalary() {
		return salary;
	}
	public void setSalary(double salary) {
		this.salary = salary;
	}
	public double getSubsidy() {
		return subsidy;
	}
	public void setSubsidy(double subsidy) {
		this.subsidy = subsidy;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	@Override
	public String toString() {
		return "Employee [id=" + id + ", name=" + name + ", age=" + age + ", job=" + job + ", salary=" + salary
				+ ", subsidy=" + subsidy + "]";
	}
	
}

使用DOM4J解析XML文档

<?xml version="1.0" encoding="UTF-8"?>
<emps xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="{Employee.xsd}">
 	<emp id="1001">
 		<name>高淇</name>
 		<age>18</age>
 		<job>程序员</job>
 		<salary>30000</salary>
 		<subsidy>5000</subsidy>
 	</emp>
 	<emp id="1002">
 		<name>高小二</name>
 		<age>19</age>
 		<job>讲师</job>
 		<salary>35000</salary>
 		<subsidy>2000</subsidy>
 	</emp>
 	<emp id="1003">
 		<name>高小松</name>
 		<age>20</age>
 		<job>教授</job>
 		<salary>20000</salary>
 		<subsidy>3000</subsidy>
 	</emp>
 </emps>

schema约束
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >
	<xs:element name="emps">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="emp" maxOccurs="unbounded">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="name" type="xs:string"></xs:element>
							<xs:element name="age" type="xs:int"></xs:element>
							<xs:element name="job" type="xs:string"></xs:element>
							<xs:element name="salary" type="xs:double"></xs:element>
							<xs:element name="subsidy" type="xs:double"></xs:element>
						</xs:sequence>
						<xs:attribute name="id" type="xs:positiveInteger" use="required"></xs:attribute>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>

测试类:

7deea94551b798c4532d18446d799303.png

b8b825bae7dd69dd2c43026e98788da9.png

35edff52a5f49ca7a569a5b1140a0d16.png

3536885a1d551dc2e679c95a9420a81a.png

f3341984a605885539d624d011222f61.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值