xml解析java对象_读取xml并转换为Java对象
XML 被设计⽤来传输和存储数据。
主要⽤途: 1.XML 把数据从 HTML 分离
如果你需要在 HTML ⽂档中显⽰动态数据,那么每当数据改变时将花费⼤量的时间来编辑 HTML。
通过 XML,数据能够存储在独⽴的 XML ⽂件中。这样你就可以专注于使⽤ HTML 进⾏布局和显⽰,并确保修改底层数据不再需要对HTML 进⾏任何的改变。
通过使⽤⼏⾏ JavaScript,你就可以读取⼀个外部 XML ⽂件,然后更新 HTML 中的数据内容
2.XML 简化数据共享
在真实的世界中,计算机系统和数据使⽤不兼容的格式来存储数据。
XML 数据以纯⽂本格式进⾏存储,因此提供了⼀种独⽴于软件和硬件的数据存储⽅法。
这让创建不同应⽤程序可以共享的数据变得更加容易。
3.XML 简化数据传输
通过 XML,可以在不兼容的系统之间轻松地交换数据。
对开发⼈员来说,其中⼀项最费时的挑战⼀直是在因特⽹上的不兼容系统之间交换数据。
由于可以通过各种不兼容的应⽤程序来读取数据,以 XML 交换数据降低了这种复杂性。
4.XML 简化平台的变更
升级到新的系统(硬件或软件平台),总是⾮常费时的。必须转换⼤量的数据,不兼容的数据经常会丢失。
XML 数据以⽂本格式存储。这使得 XML 在不损失数据的情况下,更容易扩展或升级到新的操作系统、新应⽤程序或新的浏览器。
5.XML 使您的数据更有⽤
由于 XML 独⽴于硬件、软件以及应⽤程序,XML 使您的数据更可⽤,也更有⽤。
不同的应⽤程序都能够访问您的数据,不仅仅在 HTML 页中,也可以从 XML 数据源中进⾏访问。
通过 XML,您的数据可供各种阅读设备使⽤(⼿持的计算机、语⾳设备、新闻阅读器等),还可以供盲
⼈或其他残障⼈⼠使⽤。
代码:
ReadXmlToJava.java
package test.fortest;
import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
del.User;
public class ReadXmlToJava {
public static void main(String args[]) {
Map usersMap = new HashMap();
SAXReader reader = new SAXReader();
String appFilePath = "D:"+File.separator + "ForLearn" + File.separator +
"Example" + File.separator + "mavenEx" + File.separator + "exampleF" + File.separator + "src"+ File.separator + "main" + File.separator + "webapp" + File.separator +
"WEB-INF" + File.separator + "l";
try {
//读取xml⽂档。
Document document = ad(new File(appFilePath));
//读取根节点元素。
Element rootElement = RootElement();
//读取根元素的下⾯的所有⼦元素。
Iterator cityElements = rootElement.elementIterator();
while(cityElements.hasNext()) {
Element cityElement = (Element) ();
String city = cityElement.attributeValue("city");
Iterator userElements = cityElement.elementIterator();
while(userElements.hasNext()) {
Element userElement = (Element) ();
User user = new User();
使用dom4j解析xml文件user.setLoginName(userElement.attributeValue("loginName"));
user.setPassword(userElement.attributeValue("password"));
user.setAddress(userElement.attributeValue("address"));
usersMap.put(userElement.attributeValue("loginName"), user);
}
}
System.out.println(appFilePath);
System.out.println("usersMap size : " + usersMap.size());
User user = ("xiaohong");
System.out.println("loginName : " + LoginName() + " "
+ "password : " + Password() + " "
+ "address : " + Address());
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
user.java
del;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = "users", schema = "public")
public class User extends AbsEntity implements IEntity{ private String loginName;
private String password;
private String address;
@ManyToOne
private Role role;
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Role getRole() {
return role;
}
public void setRole(Role role) {
}
@Deprecated
public String getDisplayString() {
return "this is a user";
}
}
输出:
D:\ForLearn\Example\mavenEx\exampleF\src\main\webapp\l
usersMap size : 8
loginName : xiaohong password : 321321 address : NO.1
这⾥⽤到SAXReader来读取l。l⾥⾯存放的是⽤户的⼀些信息,每⼀个〈user〉元素的属性对应着实体Java类的user.java的⼀个属性。
SAXReader是dom4j中的⼀个类,SAXReader主要⽤于解析XML⽂件,是当前⽐较流⾏的xml解决⽅案.
dom4j是⼀个⾮常⾮常优秀的Java XML API,⽤来读写XML⽂件的,具有性能优异、功能强⼤和极端易⽤使⽤的特点,同时它也是⼀个开放源代码的软件。