使用Dom4j修改、删除元素和属性值,需要先获取dom4j树(即Document),通常需要修改的节点需要先获得该节点和其父节点对象;需要修改的属性,需要先获得该属性所在的节点和该属性对象。dom4j提供了非常方便操作的API,修改和删除元素使用Element类,修改属性使用Attribute类,具体操作通过一个实例来进行说明。
要修改的XML文档内容如下:
<?xml version="1.0" encoding="UTF-8"?> <employees> <employee id="1001"> <name>张三</name> </employee> </employees>
java代码如下:
package com.bug315.update; import java.io.File; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; /** * 使用Dom4j修改XML文档指定的元素 * @author administrator * @date 2015年12月20日19:46:06 */ public class UpdateElementTest01 { public static void main(String[] args) throws Exception { // 获取文档对象 SAXReader saxReader = new SAXReader(); saxReader.setEncoding("UTF-8"); Document document = saxReader.read(new File("document/employees.xml")); Element root = document.getRootElement(); Element employeeEle = root.element("employee"); // (1)将employee元素名称改为emp employeeEle.setName("emp"); // (2)将employee元素的id属性名称改为bh,值改为2000 Attribute idAttribute = employeeEle.attribute("id"); // a、先删除id属性 employeeEle.remove(idAttribute); // b、设置新的属性,bh=2000 employeeEle.addAttribute("bh", "2000"); // (3)将employee元素下面的name元素删除掉,将name元素的值作为employee元素的值 Element nameElement = employeeEle.element("name"); String value = nameElement.getTextTrim(); employeeEle.remove(nameElement); employeeEle.setText( value ); // 将修改后的XML文档输出到终端,查看修改结果 XMLWriter writer = new XMLWriter(); writer.write(document); writer.close(); } }
修改后的文档输出如下:
<?xml version="1.0" encoding="UTF-8"?> <employees> <emp bh="2000">张三</emp> </employees>