使用Dom4j修改、删除元素和属性值,需要先获取dom4j树(即Document),通常需要修改的节点需要先获得该节点或其父节点,欲 修改属性,需要先获得该属性所在的节点和该属性。dom4j提供了非常方便操作的API,修改和删除元素使用Element类,修改属性使用Attribute类,具体操作通过一个实例来进行说明。
使用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 {
// 获取文档对象
String xml="上文xml结构";
Document document = DocumentHelper.parseText(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();
}
}
用dom4j生成xml,去掉xml头 <\xml version="1.0" encoding="UTF-8">
document.getRootElement().asXML();