下载依赖 jar 包
dom4j-1.6.1.jar
jaxen-1.1-beta-6.jar
package com.xml;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class TestAttribueXml {
//遍历
public static void testRead() {
SAXReader reader = new SAXReader();
try {
Document doc = reader.read(new File("student.xml"));
List nodeList = doc.selectNodes("/data/student");
for (Node node : nodeList) {
System.out.println(node.getName() + ":" + node.valueOf("@name") + "," + node.valueOf("@age"));
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
//添加
public static void testAdd() {
SAXReader reader = new SAXReader();
XMLWriter writer = null;
try {
Document doc = reader.read(new File("student.xml"));
Element root = doc.getRootElement();
Element element = root.addElement("student");
element.addAttribute("name", "李浩");
element.addAttribute("age", "23");
OutputFormat format = OutputFormat.createPrettyPrint();
writer = new XMLWriter(new FileWriter("student.xml"), format);
writer.write(doc);
writer.flush();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//修改
public static void testUpdate() {
SAXReader reader = new SAXReader();
XMLWriter writer = null;
try {
Document doc = reader.read(new File("student.xml"));
List elementList = doc.selectNodes("/data/student");
for (Element element : elementList) {
String name = element.attributeValue("name");
if ("李军".equals(name)) {
element.setAttributeValue("age", "21");
}
}
OutputFormat format = OutputFormat.createCompactFormat();
writer = new XMLWriter(new FileWriter("student.xml"), format);
writer.write(doc);
writer.flush();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//修改
public static void testUpdate2() {
SAXReader reader = new SAXReader();
XMLWriter writer = null;
try {
Document doc = reader.read(new File("student.xml"));
Element root = doc.getRootElement();
Iterator iter = root.elementIterator();
while (iter.hasNext()) {
Element element = iter.next();
String name = element.attributeValue("name");
if ("李军".equals(name)) {
element.setAttributeValue("age", "24");
}
}
OutputFormat format = OutputFormat.createCompactFormat();
writer = new XMLWriter(new FileWriter("student.xml"), format);
writer.write(doc);
writer.flush();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//删除
public static void testDelete() {
SAXReader reader = new SAXReader();
XMLWriter writer = null;
try {
Document doc = reader.read(new File("student.xml"));
List elementList = doc.selectNodes("/data/student");
for (Element element : elementList) {
String name = element.attributeValue("name");
if ("李军".equals(name)) {
element.getParent().remove(element);
break;
}
}
OutputFormat format = OutputFormat.createCompactFormat();
writer = new XMLWriter(new FileWriter("student.xml"), format);
writer.write(doc);
writer.flush();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
testDelete();
testRead();
}
}
student.xml