这篇文章将为大家详细讲解有关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解析中如何使用sax解析把xml文档封装成对象
小编给大家分享一下XML解析中如何使用sax解析把xml文档封装成对象,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下...
用户名
密码
记住登录状态 忘记密码?
邮箱
确认密码
我已阅读并同意 用户协议