java使用dom4j方法解析xml
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
class Person{
private String name = "";
private int age = 100;
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;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + ''' +
", age=" + age +
'}';
}
}
public class XmlParse {
//xml解析遵循docment文档解析的各类规定,具体规定由w3c组织规定
//首先要创建一个DocumentBuilder对象
private String file = "";
public XmlParse() {
}
public XmlParse(String file) {
this.file = file;
}
// 读取XML文件,获得document对象
private Document load(){
Document document =null;
try {
//采取SAX方法进行文档读取
SAXReader reader = new SAXReader();
document =reader.read(this.file);
}catch (Exception e){
System.out.println("文档有误");
}
return document;
}
// 1.读取XML文件,获得document对象
public Document load(URL file){
Document document =null;
try {
//采取SAX方法进行文档读取
SAXReader reader = new SAXReader();
document =reader.read(file);
}catch (Exception e){
System.out.println("文档有误");
}
return document;
}
// 2.获取根节点
public Element getRoot(){
Document document = load();
return document.getRootElement();
}
//3.增加节点
public void addElement(){
Element root = getRoot();
//自根节点往后形成一个树形结构
Element menu = root.addElement("person");
Element name = menu.addElement("name");
Element age = menu.addElement("age");
//设置文本内容
name.setText("cat");
age.setText("1545");
}
public List<Person> elementItor(){
List<Person> persons = new ArrayList<>();
Element root = getRoot();
for (Iterator it = root.elementIterator(); it.hasNext(); ) {
Element e = (Element) it.next();
// System.out.println(e.getName());
Person person = new Person();
//elementText获取节点名
person.setName(e.elementText("name"));
person.setAge(Integer.parseInt(e.elementText("age")));
persons.add(person);
}
return persons;
}
public static void main(String[] args) {
XmlParse xmlParse = new XmlParse("src/main/resources/xmlDemo.xml");
List<Person> persons = xmlParse.elementItor();
for(Person person:persons){
System.out.println(person);
}
xmlParse.addElement();
List<Person> newperson = xmlParse.elementItor();
for(Person person:newperson){
System.out.println(person);
}
}
}