【java开发系列】—— JDOM创建、修改、删除、读取XML文件
2014-10-12 14:30
525 查看
创建XML文档
XML文件是一种典型的树形文件,每个文档元素都是一个document元素的子节点。而每个子元素都是一个Element对象,对象可以向下包含。1 因此我们可以通过先创建元素再将元素添加到父元素中,最后将顶层元素添加到根元素中。
2 创建完文档元素后,就可以把元素添加到document对象中,然后写入文件。
主要使用的函数:
Element.setAttribute 为元素添加信息 Element.addContent(String,String) 为元素添加子元素内容,也可以直接添加另一个元素节点 Document.setRootElement(Element) 为文档添加根元素 XMLOutputter.output(Document,FileWriter) 将Docuemnt写入到FileWriter文件流中
下面是主要的操作过程,写入文件的过程放到了saveXML中
@SuppressWarnings("null") public static void createXML() { // 创建document Document mydoc = new Document(); // 创建元素person1 Element person1 = new Element("person"); person1.setAttribute("id", "ID001"); // 添加注释 person1.addContent(new Comment("this is person1")); person1.addContent(new Element("name").setText("xingoo")); person1.addContent(new Element("age").setText("25")); person1.addContent(new Element("sex").setText("M")); // 可以嵌套添加子元素 Element address1 = new Element("address"); address1.setAttribute("zone", "province"); address1.addContent("LiaoNing"); person1.addContent(address1); // 创建元素person2 Element person2 = new Element("person"); person2.setAttribute("id", "ID002"); // 添加注释 person2.addContent(new Comment("this is person2")); person2.addContent(new Element("name").setText("xhalo")); person2.addContent(new Element("age").setText("26")); person2.addContent(new Element("sex").setText("M")); // 可以嵌套添加子元素 Element address2 = new Element("address"); address2.setAttribute("zone", "province"); address2.addContent("JiLin"); person2.addContent(address2); // 在doc中添加元素Person Element info = new Element("information"); info.addContent(person1); info.addContent(person2); mydoc.setRootElement(info); saveXML(mydoc); }
saveXML()代码:
public static void saveXML(Document doc) { // 将doc对象输出到文件 try { // 创建xml文件输出流 XMLOutputter xmlopt = new XMLOutputter(); // 创建文件输出流 FileWriter writer = new FileWriter("person.xml"); // 指定文档格式 Format fm = Format.getPrettyFormat(); // fm.setEncoding("GB2312"); xmlopt.setFormat(fm); // 将doc写入到指定的文件中 xmlopt.output(doc, writer); writer.close(); } catch (Exception e) { e.printStackTrace(); } }
执行后,刷新项目,就可以在项目下看到person.xml文件了。
读取XML文档
读取文档,首先需要一个xml的解析器,它可以自动的解析出各个元素,并且把子元素作为自己的孩子节点,方便操作。主要使用的函数:
SAXBuilder.build("xxx.xml") 解析XML文档 Document.getRootElement() 获取根元素 Element.getChildren() 获取根元素下的子元素,返回List<Element> Element.getAttributeValue(String) 获取指定元素的信息 Element.getChildText 获取指定元素的内容
public static void readXML() { // 使用SAXBuilder解析器解析xml文件 SAXBuilder sb = new SAXBuilder(); Document doc = null; try { doc = sb.build("person.xml"); Element root = doc.getRootElement(); List<Element> list = root.getChildren("person"); for (Element el : list) { String id = el.getAttributeValue("id"); String name = el.getChildText("name"); String age = el.getChildText("age"); String sex = el.getChildText("sex"); System.out.println("id:" + id); System.out.println("name:" + name); System.out.println("age:" + age); System.out.println("sex:" + sex); System.out.println("--------------------------"); } } catch (Exception e) { e.printStackTrace(); } }
修改XML文档
修改XML文档,也是先利用解析器找到指定的元素,使用setText或者setAttributeValue来修改元素内容修改后记得要保存到文件中,即在此调用saveXML()
public static void updateXML(){ SAXBuilder sb = new SAXBuilder(); Document doc = null; try { doc = sb.build("person.xml"); Element root = doc.getRootElement(); List<Element> list = root.getChildren("person"); for (Element el : list) { if (el.getAttributeValue("id").equals("ID001")) { Element name = el.getChild("name"); name.setText("xingoo---update"); } } } catch (Exception e) { e.printStackTrace(); } saveXML(doc); }
删除XML文档元素
删除操作类似修改,调用removeCotent就可以根据内容删除指定的元素了。但是要用他的父节点调用。最后也需要保存到文件中才可以。public static void removeXML() { SAXBuilder sb = new SAXBuilder(); Document doc = null; try { doc = sb.build("person.xml"); Element root = doc.getRootElement(); List<Element> list = root.getChildren("person"); for (Element el : list) { if (el.getAttributeValue("id").equals("ID001")) { root.removeContent(el); } } } catch (Exception e) { e.printStackTrace(); } saveXML(doc); }
相关文章推荐
- 【java开发系列】— JDOM创建、修改、删除、读取XML文件
- 【java开发系列】— JDOM创建、改动、删除、读取XML文件
- JDOM创建、修改、删除、读取XML文件
- JAVA 如何创建/删除/修改/复制目录及文件
- JAVA 如何创建/删除/修改/复制目录及文件
- JAVA 如何创建/删除/修改/复制目录及文件
- JAVA 如何创建/删除/修改/复制目录及文件
- JAVA读取文件的创建时间和修改时间
- JAVA 如何创建/删除/修改/复制目录及文件 --【转】
- Metro Style App开发快速入门 之XML文件读取,修改,保存等操作
- Java用jdom.jar解析读取XML文件信息
- 用JAVA创建,读取XML文件
- JavaWeb开发深入认识并创建XML文件之一
- ajax系列教程,从读取,修改,添加,到酷酷的删除效果! - Web 开发 / Ajax
- JAVA 如何创建\删除\修改\复制目录及文件
- JAVA读取文件的创建时间和修改时间
- JAVA 如何创建/删除/修改/复制目录及文件
- java监听硬盘的创建、修改删除文件的demo(需要jnotify-lib-0.93.rar )
- 项目开发中经常要用到的知识----Java读取.Properties,.Xml,.Ini文件(二)
- 在Java中使用Jdom读取xml配置文件