Javaweb学习笔记之XML(四):Dom4J删除XML文档的标签和属性

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29331365/article/details/89922586

/*
 * 删除 标签、属性
 */
@Test
public void test4() throws Exception{
	// 读取 XML 文档,返回 Document 对象
	Document doc = new SAXReader().read("./src/contact.xml");
	
	/*
	 * 删除标签:1、得到标签对象;2、删除标签
	 */
	Element ageElem = doc.getRootElement().element("contact").element("age"); 	// 1、得到标签对象
	// 方法一:自己删除自己
//		ageElem.detach();
	// 方法二:通过父标签删除子标签
	ageElem.getParent().remove(ageElem);
	
	/*
	 * 删除属性:1、得到属性对象;2、删除属性
	 */
	Element contactElem = (Element)doc.getRootElement().elements().get(1);
	Attribute attr = contactElem.attribute("id");
//		attr.detach(); 					// 删除属性(自己删除自己)
	attr.getParent().remove(attr); 	// 删除属性(通过父节点删除子节点)
	
	// 设置 输出位置
	FileOutputStream out = new FileOutputStream("D:/contact.xml");
	// 设置输出格式
	OutputFormat format = OutputFormat.createPrettyPrint();
	// 设置输出编码方式
	format.setEncoding("utf-8");
	// 创建输出对象
	XMLWriter writer = new XMLWriter(out, format);
	// 输出
	writer.write(doc);
	// 关闭流
	writer.close();
}

其中原文件 ./src/contact.xml 为:

<?xml version="1.0" encoding="utf-8"?>
<contactList>
	<contact id="001" name="eric">
		<name>张三</name>
		<age>20</age>
		<phone>134222223333</phone>
		<email>[email protected]</email>
		<qq>432221111</qq>
	</contact>
	<contact id="002">
		<name>李四</name>
		<age>20</age>
		<phone>134222225555</phone>
		<email>[email protected]</email>
		<qq>432222222</qq>
	</contact>
	<abc></abc>
</contactList>

 修改之后的 D:/contact.xml 为:

<?xml version="1.0" encoding="utf-8"?>

<contactList> 
  <contact id="001" name="eric"> 
    <name>张三</name>  
    <phone>134222223333</phone>  
    <email>[email protected]</email>  
    <qq>432221111</qq> 
  </contact>  
  <contact> 
    <name>李四</name>  
    <age>20</age>  
    <phone>134222225555</phone>  
    <email>[email protected]</email>  
    <qq>432222222</qq> 
  </contact>  
  <abc/> 
</contactList>

Dom4J下载地址:https://download.csdn.net/download/qq_29331365/11164486

猜你喜欢

转载自blog.csdn.net/qq_29331365/article/details/89922586