/*
* 删除 标签、属性
*/
@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>zhangsan@qq.com</email>
<qq>432221111</qq>
</contact>
<contact id="002">
<name>李四</name>
<age>20</age>
<phone>134222225555</phone>
<email>lisi@qq.com</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>zhangsan@qq.com</email>
<qq>432221111</qq>
</contact>
<contact>
<name>李四</name>
<age>20</age>
<phone>134222225555</phone>
<email>lisi@qq.com</email>
<qq>432222222</qq>
</contact>
<abc/>
</contactList>
Dom4J下载地址:https://download.youkuaiyun.com/download/qq_29331365/11164486