版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34792830/article/details/84918026
package com.hl.chapter1;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class ReadXmlDom {
private static DocumentBuilderFactory builderFactory = null;
private static DocumentBuilder builder = null;
private static Document document = null;
static{
builderFactory = DocumentBuilderFactory.newInstance();
try {
builder = builderFactory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
}
public List<User> getUsers(String filePath) throws Exception{
document = builder.parse(filePath);
NodeList nodeList = document.getElementsByTagName("user");
int size = nodeList.getLength();
List<User> users = new ArrayList<>();
for(int i=0;i<size;i++){
User user = new User();
Node node = nodeList.item(i);
//获取所有属性
NamedNodeMap namedNodeMap = node.getAttributes();
//获取id值
String id = namedNodeMap.getNamedItem("id").getTextContent();
user.setId(id);
//获取一个user节点的所有节点
NodeList nodeChildNodes = node.getChildNodes();
for(int j=1;j<nodeChildNodes.getLength();j+=2){
//获取user节点下的一个子节点
Node node2 = nodeChildNodes.item(j);
if("name".equals(node2.getNodeName())){
user.setName(node2.getTextContent());
}else if ("age".equals(node2.getNodeName())) {
user.setAge(node2.getTextContent());
}else if ("num".equals(node2.getNodeName())) {
user.setNum(node2.getTextContent());
}
}
users.add(user);
}
return users;
}
public static void main(String[] args) throws Exception {
ReadXmlDom xmlDom = new ReadXmlDom();
List<User> users = xmlDom.getUsers("src/com/hl/chapter1/user.xml");
System.out.println(users);
}
}
xml
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="1">
<name>张三</name>
<age>23</age>
<num>5115</num>
</user>
<user id="2">
<name>李四</name>
<age>18</age>
<num>5116</num>
</user>
<user id="3">
<name>娜娜</name>
<age>34</age>
<num>523</num>
</user>
</users>
user.java
package com.hl.chapter1;
public class User {
private String id;
private String name;
private String age;
private String num;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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 getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
}