使用DOM4J删除XML文件的内容

删除动作包括删除标签本身和删除标签的属性,需要注意的是xml文档结构一旦变化,必须要重新写出到文件,否则不会生效.

下面通过Demo直接演示:

package demo1;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;

public class UpdateTest {

	@Test
	public void testUpdate() throws Exception {
		// 创建xml文件的解释器
		SAXReader reader = new SAXReader();
		Document document = reader.read(new File("person.xml"));

		// 获取根元素
		Element rootEle = document.getRootElement();

		// 获取所有直接子元素
		List<Element> persons = rootEle.elements();
		for (Element person : persons) {
			
			//获取id属性
			String id = person.attributeValue("id");
			
			// 删除id属性=110的person元素
			if ("110".equals(id)) {
				//删除一个元素的时候必须是由其直接父元素来删除
				rootEle.remove(person);
			}
			// 删除id属性
			Attribute attribute = person.attribute("id");
			person.remove(attribute);
			
			
			// 修改文本内容
			if ("220".equals(id)) {
				//修改email元素的文本内容
				Element element = person.element("email");
				element.setText("22222@qq.com");
			}
		}

		// 把document最新的状态生成一个xml文件
		writeXml(document);
	}

	// 把一个document写出到xml文件上。
	public void writeXml(Document document) throws IOException {
		// 输出的格式器
		OutputFormat outputFormat = OutputFormat.createPrettyPrint();
		outputFormat.setEncoding("gbk");

		// xmlWriter
		FileWriter fileWriter = new FileWriter("data.xml");
		XMLWriter xmlWriter = new XMLWriter(fileWriter, outputFormat);
		xmlWriter.write(document);
		xmlWriter.close();
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值