首页 > 其他分享 >修改XML文档的例子

修改XML文档的例子

时间:2023-04-19 17:38:32浏览次数:33  
标签:XML dom4j setText writer 例子 文档 org import addElement


要求:

1.生成一个XML文档:

<?xml version="1.0" encoding="utf-8"?>
<Students> 
   <Student id="1"> 
     <name>张三</name>  
     <gender>男</gender>  
     <grade>计算机一班</grade>  
     <address>广州天河</address> 
   </Student>  
   <Student id="2"> 
     <name>李四</name>  
     <gender>女</gender>  
     <grade>计算机二班</grade>  
     <address>广州越秀</address> 
   </Student> 
 </Students>

2.将id为2的学生的姓名修改为张丽

实现代码:

package gz.itcast.a_dom4j_read;

import java.io.File;
import java.io.FileOutputStream;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
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 Demo_Write1 {
	public static void main(String[] args) throws Exception {
		//一、创建一个XML文档
		Document doc = DocumentHelper.createDocument();//1.创建一个文档
		Element rootElem = doc.addElement("Students");//2.创建标签
		Element studentElem1 = rootElem.addElement("Student");//创建子标签
		studentElem1.addAttribute("id", "1"); //3.添加属性
		studentElem1.addElement("name").setText("张三");
		studentElem1.addElement("gender").setText("男");
		studentElem1.addElement("grade").setText("计算机一班");
		studentElem1.addElement("address").setText("广州天河");
		
		Element studentElem2 = rootElem.addElement("Student");//创建子标签
		studentElem2.addAttribute("id", "2"); //3.添加属性
		studentElem2.addElement("name").setText("李四");
		studentElem2.addElement("gender").setText("女");
		studentElem2.addElement("grade").setText("计算机二班");
		studentElem2.addElement("address").setText("广州越秀");
		
		//二、修改XML文档:修改id为2的姓名为张丽,代码见test1
		
		//三、输出XML文件
		FileOutputStream out = new FileOutputStream("f:/Student.xml");
		OutputFormat format = OutputFormat.createPrettyPrint();
		format.setEncoding("utf-8");
		XMLWriter writer = new XMLWriter(out,format);
		writer.write(doc);
		writer.close();
	}
	
	//二、修改XML文档:修改id为2的姓名为张丽,代码见test1
	@Test
	public void test1() throws Exception {
		Document doc1 = new SAXReader().read(new File("f:/Student.xml"));
		Iterator<Element> it = doc1.getRootElement().elementIterator("Student");
		while(it.hasNext()){
			Element stuElem = it.next();
			System.out.println(stuElem.getName());
			if(stuElem.attributeValue("id").equals("2")) {
				stuElem.element("name").setText("张丽");
				break;
			}
		}
		
		FileOutputStream out = new FileOutputStream("f:/Student.xml");
		OutputFormat format = OutputFormat.createPrettyPrint();
		format.setEncoding("utf-8");
		XMLWriter writer = new XMLWriter(out,format);
		writer.write(doc1);
		writer.close();
	}
}

 

标签:XML,dom4j,setText,writer,例子,文档,org,import,addElement
From: https://blog.51cto.com/u_16079508/6207012

相关文章

  • 使用SAX读取XML文件--(SAX的基础语法练习)
    SAX的基本知识:XML的SAX解析: DOM解析原理:一次性把XML文档加载进内存,然后在内存中构建Document树,对内存要求比较高。       DOM解析缺点:不适合读取大容量的XML文件,容易导致内存溢出。 SAX解析原理:加载一点,读取一点,处理一点,对内存要求比较低。  SAX解析工具:Sun公司提......
  • 商城式开发文档
    随着现代技术和消费观念的不断更新,越来越多的企业开始关注电子商务。商城式开发是电子商务领域中的重要概念之一,指基于互联网的商城平台的开发。本文将详细介绍商城式开发的必要性、目标、流程和技术实现方法等方面。一、商城式开发的必要性商城式开发是现代商业中不可或缺的一部分......
  • 技术文档 | OpenSCA技术原理之composer依赖解析
    OpenSCA知识小课堂开课了!今天主要介绍基于composer包管理器的组件成分解析原理。composer介绍composer是PHP的依赖管理工具。开发者受到Node.js的npm及Ruby的bundler启发,composer设计上与两者有诸多相似。composer的依赖管理文件是composer.json。开发者可以在composer.j......
  • 技术文档丨 OpenSCA技术原理之npm依赖解析
    本文主要介绍基于npm包管理器的组件成分解析原理。npm介绍npm(全称NodePackageManager)是Node.js标准的软件包管理器。npm的依赖管理文件是package.json,开发者可以在package.json中指定每个依赖项的版本范围。如果一个项目中存在package.json文件,便可以执行npminstall......
  • ROS2 学习记录文档
    ros2的安装(humbleversion)1.换源2.过程sudoaptupdate&&sudoaptinstalllocalessudolocale-genen_USen_US.UTF-8sudoupdate-localeLC_ALL=en_US.UTF-8LANG=en_US.UTF-8exportLANG=en_US.UTF-8sudoaptinstallcurlgnupglsb-releasesudocurl......
  • docker官方文档解读
    官网:https://docs.docker.com/get-started/overview/1Dockeroverview2开始2.1创建镜像并启动这里我们以一个nodejs用于为例,说明容器化应用程序过程首先克隆这个应用程序源码 gitclonehttps://github.com/docker/getting-started.git 然后,创建一个Dockerfile文件[......
  • Apple iWork(Pages、Numbers、Keynote)13.0 - 文档、电子表格、演示文稿
    请访问原文链接:https://sysin.org/blog/apple-iwork-13/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org苹果今天将其专为iOS和macOS设备设计的iWork应用套件更新为版本12(sysin),引入了许多新功能和改进功能。文档、电子表格、演示文稿,尽可集思广益。Pages......
  • Oracle mos文档关于视图v$open_cursor中说法矛盾
     Oraclemos文档关于视图v$open_cursor中矛盾说法 HowtoMonitorandtuneOpenandCachedCursors(文档ID1430255.1)中指出:v$open_cursorshowscachedcursors,notcurrentlyopencursors,bysession.Ifyouarewonderinghowmanycursorsasessionhasopen......
  • 使用bat操作替换XML文件的字符串
    使用bat脚本,替换xml的字符串,并且生成一个新文件@echooffsetlocalenabledelayedexpansionsetold_str=123setnew_str=456setinput_file=123.xmlsetoutput_file=456.xmlset"file_content="for/f"delims="%%ain(%input_file%)do(set"line......
  • 【内附源码和文档】基于C++14异步蒙特卡洛工具函数
    Simple-Monte-Carlo-Tool-Function这是一个使用C++实现的简单的异步蒙特卡洛算法工具函数C++标准:C++14使用autores=MonteCarlo(sample_nums,check_sample_funtion,generate_sample_funtion,…args);doublep=res.get();std::cout<<p<<std::endl;sample_nums:需要生成的样......