一、dom4j常用操作类:
1、SAXReader解析器:org.dom4j.io.SAXReader包;
构造:new SAXReader();
核心方法:获取Doucment对象:Document read(File file);
2、Document类:org.dom4j.Document包;
核心方法:获取根元素:Element getRootElement();
3、Element类:org.dom4j.Element包;
核心方法:
(1)获取元素节点集合:List<Element> elements(["ele"]);
(2)获取元素节点:Element element("ele");
(3)获取属性节点集合:List<Attribute> attributes(["ele"]);
(4)获取节点名:String getName();
(5)获取当前节点文本值:String getText();
(6)获取当前节点下所有的文本值:String getStringValue();
-------------------
(1)添加元素:addElement("name");
(2)设置文本:setText("text");
4、Attribute类:
核心方法:
(1)获取属性节点名:String getName();
(2)获取属性节点值:String getValue();
二、dom4j读取元素:
//导入jar包;
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <books> <book> <number>001</number> <name>论语</name> <author>孔子</author> </book> <book> <number>002</number> <name>西游记</name> <author>吴承恩</author> </book> <book> <number>003</number> <name>时间简史</name> <author>霍金</author> </book> </books>
public class Test { public static void main(String[] args) throws Exception { // 1、创建SAXReader解析器 SAXReader reader = new SAXReader(); // 2、获取Document对象 Document doc = reader.read("E:\\JavaProject\\review\\src\\dom\\Book.xml"); // 3、获取根元素 Element root = doc.getRootElement(); // 4、根据指定名称获取根元素下所有元素 List<Element> books = root.elements("book"); // 5、遍历元素 for (Element book : books) { Element nameEle = book.element("name"); System.out.println(nameEle.getText()); } } }
三、dom4j添加元素:
public class Test { public static void main(String[] args) throws Exception { // 1、创建SAXReader解析器 SAXReader reader = new SAXReader(); // 2、获取Document对象 Document doc = reader.read("E:\\JavaProject\\review\\src\\dom\\Book.xml"); // 3、获取根元素 Element root = doc.getRootElement(); // 4、给根元素添加元素和属性,并返回添加的元素 Element newEle = root.addElement("book").addAttribute("id", "newId"); // 5、在新的元素中添加子元素和元素值; newEle.addElement("number").setText("000"); newEle.addElement("name").setText("新书"); newEle.addElement("author").setText("java"); // 6、同步方法1:写出到本地xml,注意编码 //Writer out = new OutputStreamWriter(new FileOutputStream("E:\\JavaProject\\review\\src\\dom\\Book.xml"),"UTF-8"); //doc.write(out); //out.close(); // 6、同步方法2:格式化代码再输出; OutputFormat format = OutputFormat.createPrettyPrint(); Writer out = new OutputStreamWriter(new FileOutputStream("E:\\JavaProject\\review\\src\\dom\\Book.xml"), "UTF-8"); XMLWriter writer = new XMLWriter(out, format); writer.write(doc); out.close(); } }
原文:https://www.cnblogs.com/Tractors/p/11300224.html