在工作中有时候会用到dom4j对xml文件或者字符串进行解析, 以下内容为随手笔记, 防止以后遗忘.
1. 相关依赖
<!-- dom4j --><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency>
2. 获取dom对象
获取dom对象方式主要以下几种:
// 读取 xml 文件 方式SAXReader reader = new SAXReader();Document doc1 = reader.read(new File("src/main/java/com/liuzhihang/tool/xml/alipay.xml"));// 解析 xml 文本 方式String aliPayStr = XmlTest.getAliPayStr();Document doc2 = DocumentHelper.parseText(aliPayStr);// 主动创建Document doc3 = DocumentHelper.createDocument();Element element = doc3.addElement("Test");
3. 操作dom对象
当获取到dom对象后便可以通过以下方式对dom进行操作
// 获取根节点Element rootElement = dom.getRootElement();// System.out.println(rootElement.getName());// 获取子节点Element element = rootElement.element("response").element("alipay");// System.out.println(element.asXML());// 获取节点的文字String text = element.element("alipay_buyer_login_id").getText();// System.out.println(text);// 获取节点下的所有节点 快捷键 iter / itcoList elements = element.elements();// for (Object o : elements) {// Element tempElement = (Element) o;// System.out.println(tempElement.getName() + "\t" + tempElement.getText());// }// for (Iterator iterator = elements.iterator(); iterator.hasNext(); ) {// Element next = (Element)iterator.next();// System.out.println(next.getName() + "\t" + next.getText());// }// 获取节点下所有节点 Iterator对象 快捷键 ititIterator iterator = element.elementIterator();// while (iterator.hasNext()) {// Element next = (Element)iterator.next();// System.out.println(next.getName() + "\t" + next.getText());// }// 添加节点Element testElement = element.addElement("testElement");// 指定添加文字testElement.setText("测试添加文字");System.out.println(element.asXML());// 删除节点boolean remove = element.remove(testElement);System.out.println(remove + "\n" + element.asXML());
