1.代码
package com.self3;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class DomXML {
public static void main(String[] args) throws Exception {
File file = new File("D:\\People.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(file);
Element element = document.getDocumentElement();
List<People> peopleList = new ArrayList<People>();
NodeList peopleNodes = element.getElementsByTagName("People");
for (int i = 0; i < peopleNodes.getLength(); i++) {
People people = new People();
Element peopleElement = (Element) peopleNodes.item(i);
people.setId(peopleElement.getAttribute("id"));
NodeList childPeopleNodes = peopleElement.getChildNodes();
for (int j = 0; j < childPeopleNodes.getLength(); j++) {
if (childPeopleNodes.item(j) instanceof Element) {
Element childPeopleElement = (Element) childPeopleNodes.item(j);
if (childPeopleElement.getNodeType() == Node.ELEMENT_NODE) {
if (childPeopleElement.getNodeName().equals("Name")) {
people.setEnglistName(childPeopleElement.getAttribute("en"));
people.setName(childPeopleElement.getTextContent());
} else if (childPeopleElement.getNodeName().equals("Age")) {
people.setAge(childPeopleElement.getTextContent());
}
}
}
}
peopleList.add(people);
}
for (People people : peopleList) {
System.out.println(people);
}
}
}
package com.self3;
public class People {
private String id;
private String name;
private String englistName;
private String age;
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 getEnglistName() {
return englistName;
}
public void setEnglistName(String englistName) {
this.englistName = englistName;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public String toString() {
return "People{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", englistName='" + englistName + '\'' +
", age='" + age + '\'' +
'}';
}
}
2.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<PeopleList>
<People id="1">
<Name en="zhangsan">张三</Name>
<Age>20</Age>
</People>
<People id="2">
<Name en="lisi">李四</Name>
<Age>35</Age>
</People>
</PeopleList>
3.输出结果