Dom4j

来源:互联网 发布:网络基础哪本书好 编辑:程序博客网 时间:2024/05/23 16:22
package test;


import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;


import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;


public class Dom4j {
@Test
public void dom4j() throws DocumentException, IOException {
SAXReader reader = new SAXReader();


String filepath = System.getProperty("user.dir") + "\\src\\main\\resources\\students.xml";
// 获得document
Document document = reader.read(new File(filepath));
System.out.println(document.asXML());
// 1.获得根元素
Element root = document.getRootElement();
addElement(document, root);
deletElement(document);
readElement(root);
}


public void addElement(Document document, Element root) throws IOException {
Element studentEle = root.addElement("student").addAttribute("number", "itcast_0003");
studentEle.addElement("name").addText("张三");
studentEle.addElement("age").addText("19");
studentEle.addElement("sex").addText("male");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
// 创建写入器
// XMLWriter writer = new XMLWriter(new
// FileWriter("src/students_copy.xml"),format);
XMLWriter writer = new XMLWriter(new FileOutputStream("src/students_copy.xml"), format);
// 写入
writer.write(document);
// 关闭资源
writer.close();
}


public void readElement(Element root) {
// 2.迭代根元素下的所有名叫student的子元素
for (Iterator<Element> it = root.elementIterator("student"); it.hasNext();) {
Element student = it.next();
// 3.获得student元素的number属性
String number = student.attributeValue("number");
// 4.student子元素的内容(name age sex)
String name = student.elementText("name");
String age = student.elementText("age");
String sex = student.elementText("sex");
System.out.println("当前学生的学号是" + number + ",姓名是:" + name + ",年龄是:" + age + ",性别是" + sex + "");
}
}
public void deletElement(Document document) throws IOException {
String xpath = "//student[@number='itcast_0001']";
Element student =  (Element) document.selectSingleNode(xpath);
//删除
System.out.println(student.getParent().remove(student));
//回写
XMLWriter writer = new XMLWriter(new FileOutputStream("src/students_copy.xml"), OutputFormat.createPrettyPrint());
writer.write(document);
writer.close();
}
}
0 0
原创粉丝点击