Javaweb学习笔记之XML(三):Dom4J修改XML文档

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29331365/article/details/89922411
	
	/*
	 * 修改 属性值、文本
	 */
	@Test
	public void test3() throws Exception{
		// 读取 XML 文档,返回 Document
		Document doc = new SAXReader().read("./src/contact.xml");
		
		/*
		 * 修改属性值:
		 * 		方案一:1、得到标签对象;2、得到属性对象;3、修改属性值
		 */
		Element contactElem = doc.getRootElement().element("contact"); 	// 1、得到标签对象
		Attribute attr = contactElem.attribute("id");					// 2、得到属性对象
		attr.setValue("003");											// 3、修改属性值
		
		/*
		 * 修改属性值:
		 * 		方案二:通过增加同名属性的方法修改属性值
		 */
		contactElem.addAttribute("id", "004");
		
		/*
		 * 修改文本:1、得到标签对象;2、修改文本
		 */
		Element nameElement = doc.getRootElement().element("contact").element("name"); // 1、得到标签对象
		nameElement.setText("王五");													   // 2、修改文本
		
		// 设置写出的位置
		FileOutputStream out = new FileOutputStream("D:/contact.xml");
		// 设置输出的格式
		OutputFormat format = OutputFormat.createPrettyPrint();
		format.setEncoding("utf-8");
		// 创建 XML 输出对象
		XMLWriter writer = new XMLWriter(out, format);
		// 输出 XML 文档
		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="004" 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/> 
</contactList>

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

猜你喜欢

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