使用Dom4j修改、删除元素和属性值

使用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 {
		// 获取文档对象
		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>
在年轻人的颈项上,没有什么东西能比事业心这颗灿烂的宝珠更迷人的了。 —— 哈菲兹
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号