【java开发系列】—— JDOM创建、修改、删除、读取XML文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【java开发系列】—— JDOM创建、修改、删除、读取XML文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4380字,纯文字阅读大概需要7分钟。
内容图文
有很多中操作XML文件的方法,这里介绍一下JDOM的使用方法和技巧。
创建XML文档
XML文件是一种典型的树形文件,每个文档元素都是一个document元素的子节点。而每个子元素都是一个Element对象,对象可以向下包含。
1 因此我们可以通过先创建元素再将元素添加到父元素中,最后将顶层元素添加到根元素中。
2 创建完文档元素后,就可以把元素添加到document对象中,然后写入文件。
主要使用的函数:
Element.setAttribute 为元素添加信息
Element.addContent(String,String) 为元素添加子元素内容,也可以直接添加另一个元素节点
Document.setRootElement(Element) 为文档添加根元素
XMLOutputter.output(Document,FileWriter) 将Docuemnt写入到FileWriter文件流中
下面是主要的操作过程,写入文件的过程放到了saveXML中
1 @SuppressWarnings("null") 2publicstaticvoid createXML() { 3// 创建document 4 Document mydoc = new Document(); 5 6// 创建元素person1 7 Element person1 = new Element("person"); 8 person1.setAttribute("id", "ID001"); 9// 添加注释10 person1.addContent(new Comment("this is person1")); 1112 person1.addContent(new Element("name").setText("xingoo")); 13 person1.addContent(new Element("age").setText("25")); 14 person1.addContent(new Element("sex").setText("M")); 15// 可以嵌套添加子元素16 Element address1 = new Element("address"); 17 address1.setAttribute("zone", "province"); 18 address1.addContent("LiaoNing"); 19 person1.addContent(address1); 2021// 创建元素person222 Element person2 = new Element("person"); 23 person2.setAttribute("id", "ID002"); 24// 添加注释25 person2.addContent(new Comment("this is person2")); 2627 person2.addContent(new Element("name").setText("xhalo")); 28 person2.addContent(new Element("age").setText("26")); 29 person2.addContent(new Element("sex").setText("M")); 30// 可以嵌套添加子元素31 Element address2 = new Element("address"); 32 address2.setAttribute("zone", "province"); 33 address2.addContent("JiLin"); 34 person2.addContent(address2); 3536// 在doc中添加元素Person37 Element info = new Element("information"); 38 info.addContent(person1); 39 info.addContent(person2); 40 mydoc.setRootElement(info); 4142 saveXML(mydoc); 43 }
saveXML()代码:
1 public static void saveXML(Document doc) { 2 // 将doc对象输出到文件 3 try { 4 // 创建xml文件输出流 5 XMLOutputter xmlopt = new XMLOutputter(); 6 7// 创建文件输出流 8 FileWriter writer = new FileWriter("person.xml"); 910// 指定文档格式11 Format fm = Format.getPrettyFormat(); 12// fm.setEncoding("GB2312");13 xmlopt.setFormat(fm); 1415// 将doc写入到指定的文件中16 xmlopt.output(doc, writer); 17 writer.close(); 18 } catch (Exception e) { 19 e.printStackTrace(); 20 } 21 }
执行后,刷新项目,就可以在项目下看到person.xml文件了。
读取XML文档
读取文档,首先需要一个xml的解析器,它可以自动的解析出各个元素,并且把子元素作为自己的孩子节点,方便操作。
主要使用的函数:
SAXBuilder.build("xxx.xml") 解析XML文档 Document.getRootElement() 获取根元素 Element.getChildren() 获取根元素下的子元素,返回List<Element> Element.getAttributeValue(String) 获取指定元素的信息 Element.getChildText 获取指定元素的内容
1 public static void readXML() { 2 // 使用SAXBuilder解析器解析xml文件 3 SAXBuilder sb = new SAXBuilder(); 4 Document doc = null; 5try { 6 doc = sb.build("person.xml"); 7 Element root = doc.getRootElement(); 8 List<Element> list = root.getChildren("person"); 9for (Element el : list) { 10 String id = el.getAttributeValue("id"); 11 String name = el.getChildText("name"); 12 String age = el.getChildText("age"); 13 String sex = el.getChildText("sex"); 14 System.out.println("id:" + id); 15 System.out.println("name:" + name); 16 System.out.println("age:" + age); 17 System.out.println("sex:" + sex); 18 System.out.println("--------------------------"); 19 } 20 } catch (Exception e) { 21 e.printStackTrace(); 22 } 23 }
修改XML文档
修改XML文档,也是先利用解析器找到指定的元素,使用setText或者setAttributeValue来修改元素内容
修改后记得要保存到文件中,即在此调用saveXML()
1 public static void updateXML(){ 2 SAXBuilder sb = new SAXBuilder(); 3 Document doc = null; 4try { 5 doc = sb.build("person.xml"); 6 Element root = doc.getRootElement(); 7 List<Element> list = root.getChildren("person"); 8for (Element el : list) { 9if (el.getAttributeValue("id").equals("ID001")) { 10 Element name = el.getChild("name"); 11 name.setText("xingoo---update"); 12 } 13 } 14 } catch (Exception e) { 15 e.printStackTrace(); 16 } 17 saveXML(doc); 18 }
删除XML文档元素
删除操作类似修改,调用removeCotent就可以根据内容删除指定的元素了。但是要用他的父节点调用。最后也需要保存到文件中才可以。
1 public static void removeXML() { 2 SAXBuilder sb = new SAXBuilder(); 3 Document doc = null; 4try { 5 doc = sb.build("person.xml"); 6 Element root = doc.getRootElement(); 7 List<Element> list = root.getChildren("person"); 8for (Element el : list) { 9if (el.getAttributeValue("id").equals("ID001")) { 10 root.removeContent(el); 11 } 12 } 13 } catch (Exception e) { 14 e.printStackTrace(); 15 } 16 saveXML(doc); 17 }
原文:http://www.cnblogs.com/xing901022/p/4020527.html
内容总结
以上是互联网集市为您收集整理的【java开发系列】—— JDOM创建、修改、删除、读取XML文件全部内容,希望文章能够帮你解决【java开发系列】—— JDOM创建、修改、删除、读取XML文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。