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

	
	/*
	 * 修改 属性值、文本
	 */
	@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>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="004" 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/> 
</contactList>

Dom4J下载地址:https://download.youkuaiyun.com/download/qq_29331365/11164486

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值