xml解析中如何使用dom4j的api对xml文件进行CRUD

这篇文章将为大家详细讲解有关xml解析中如何使用dom4j的api对xml文件进行CRUD,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

packagegz.itcast.a_dom4j_write;

importjava.io.File;
importjava.io.FileOutputStream;
importjava.util.Iterator;

importorg.dom4j.Document;
importorg.dom4j.DocumentHelper;
importorg.dom4j.Element;
importorg.dom4j.io.OutputFormat;
importorg.dom4j.io.SAXReader;
importorg.dom4j.io.XMLWriter;
importorg.junit.Test;

/**
*课堂练习:
*1.使用dom4j的api来生成以下的xml文件
<Students>
<Studentid="1">
	<name>张三</name>
	<gender>男</gender>
	<grade>计算机1班</grade>
	<address>广州天河</address>
</Student>
<Studentid="2">
	<name>李四</name>
	<gender>女</gender>
	<grade>计算机2班</grade>
	<address>广州越秀</address>
</Student>
</Students>

2.修改id为2的学生的姓名,改为“王丽”

3.删除id为2的学生
*@authorAPPle
*
*/
publicclassDemo4{

	/**
	*1.生成指定xml文档
	*@throwsException
	*/
	@Test
	publicvoidtest1()throwsException{
		//1.内存创建xml文档
		Documentdoc=DocumentHelper.createDocument();
		
		//2.写入内容,第一个写入的就是根标签
		ElementrootElem=doc.addElement("Students");
		
		//2.1增加标签
		ElementstudentElem1=rootElem.addElement("Student");
		//2.2增加属性
		studentElem1.addAttribute("id","1");
		//2.3增加标签,【同时】设置文本
		studentElem1.addElement("name").setText("张三");
		studentElem1.addElement("gender").setText("男");
		studentElem1.addElement("grade").setText("计算机1班");
		studentElem1.addElement("address").setText("广州天河");
		
		//2.1增加标签
		ElementstudentElem2=rootElem.addElement("Student");
		//2.2增加属性
		studentElem2.addAttribute("id","2");
		//2.3增加标签,同时设置文本
		studentElem2.addElement("name").setText("李四");
		studentElem2.addElement("gender").setText("女");
		studentElem2.addElement("grade").setText("计算机2班");
		studentElem2.addElement("address").setText("广州越秀");
		
		
		//3.只要对doc做了修改,都要做一次写出。内容写出到xml文件
		//3.1输出位置
		FileOutputStreamout=newFileOutputStream("d:/student.xml");
		//3.2指定格式
		OutputFormatformat=OutputFormat.createPrettyPrint();
		//设置编码
		format.setEncoding("utf-8");
		XMLWriterwriter=newXMLWriter(out,format);
		//3.3写出内容
		writer.write(doc);
		//3.4关闭资源
		writer.close();
		
	}
	
	/**
	*2.修改id为2的学生姓名
	*@throwsException
	*/
	@Test
	publicvoidtest2()throwsException{
		//1.查询到id为2的学生
		Documentdoc=newSAXReader().read(newFile("d:/student.xml"));
		//1.1找到所有的Student标签
		Iterator<Element>it=doc.getRootElement().elementIterator("Student");
		while(it.hasNext()){
			ElementstuElem=it.next();//Student标签
			//1.2查询id为id的学生标签
			if(stuElem.attributeValue("id").equals("2")){
				stuElem.element("name").setText("王丽");//覆盖式
				break;
			}
		}
	
		
		//3.1输出位置
		FileOutputStreamout=newFileOutputStream("d:/student.xml");
		//3.2指定格式
		OutputFormatformat=OutputFormat.createPrettyPrint();
		//设置编码
		format.setEncoding("utf-8");
		XMLWriterwriter=newXMLWriter(out,format);
		//3.3写出内容
		writer.write(doc);
		//3.4关闭资源
		writer.close();
	}
	
	/**
	*3.删除id为2的学生
	*@throwsException
	*/
	@Test
	publicvoidtest3()throwsException{
		//1.查询到id为2的学生
		Documentdoc=newSAXReader().read(newFile("e:/student.xml"));
		//1.1找到所有的Student标签
		Iterator<Element>it=doc.getRootElement().elementIterator("Student");
		while(it.hasNext()){
			ElementstuElem=it.next();
			//1.2查询id为id的学生标签
			if(stuElem.attributeValue("id").equals("2")){
				//1.3删除该学生标签
				stuElem.detach();//自杀式
				break;
			}
		}
	
		
		//3.1输出位置
		FileOutputStreamout=newFileOutputStream("e:/student.xml");
		//3.2指定格式
		OutputFormatformat=OutputFormat.createPrettyPrint();
		//设置编码
		format.setEncoding("utf-8");
		XMLWriterwriter=newXMLWriter(out,format);
		//3.3写出内容
		writer.write(doc);
		//3.4关闭资源
		writer.close();
	}
}

关于“xml解析中如何使用dom4j的api对xml文件进行CRUD”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

xml解析中如何使用dom4j的api对xml文件进行CRUD

发布于 2021-03-13 15:40:42
收藏
分享
海报
0 条评论
171
上一篇:如何使用XML资源文件来定义颜色,样式等 下一篇:js缓动动画封装的示例分析
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码