【自动化__持续集成】___java___XML__DOM4操作
一、代码如下
package com.wujianbo.five; import java.io.File; import java.io.FileOutputStream; import java.util.List; import javax.annotation.Generated; import javax.swing.text.html.HTMLDocument.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; public class Demo11 { String fileName= System.getProperty("user.dir") + "\\data\\Students.xml"; String fileName2= System.getProperty("user.dir") + "\\data\\Person.xml"; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Demo11 demo11= new Demo11(); //System.out.println(demo11.fileName); //System.out.println(demo11.fileName2); //demo11.readXml(); //demo11.createXml(); demo11.deleteXml(); } //读取文档内容 private void readXml() throws Exception { // TODO Auto-generated method stub SAXReader sr= new SAXReader(); org.dom4j.Document doc= sr.read(new File(fileName)); //System.out.println(doc); List nameList= doc.selectNodes("/class/student/name"); List ageList= doc.selectNodes("/class/student/age"); List sexList= doc.selectNodes("/class/student/sex"); //System.out.println(nameList); for(int i=0; i<nameList.size(); i++) { String name= ((Element)nameList.get(i)).getTextTrim(); System.out.print("name=" + name); String age= ((Element)ageList.get(i)).getTextTrim(); System.out.print("age=" + age); String sex= ((Element)sexList.get(i)).getTextTrim(); System.out.println("sex=" + sex); System.out.println("=================="); } } //新建xml,并写入内容 private void createXml() throws Exception { // TODO Auto-generated method stub Element root= DocumentHelper.createElement("Person"); Document doc= DocumentHelper.createDocument(root); root.addAttribute("学校", "南大").addAttribute("位置", "江西"); Element element1= root.addElement("学生"); element1.addElement("姓名").addAttribute("婚姻", "单身").addText("小章"); element1.addElement("年龄").addText("21"); Element element2= root.addElement("学生"); element2.addElement("姓名").addAttribute("婚姻", "单身").addText("小红").addElement("爱好").addText("唱歌"); element2.addElement("年龄").addText("22"); OutputFormat format= new OutputFormat(" ", true); format.setEncoding("UTF-8"); XMLWriter xmlWriter= new XMLWriter(new FileOutputStream(fileName2), format); xmlWriter.write(doc); xmlWriter.close(); } //修改xml文件 private void modifyXml() throws Exception { // TODO Auto-generated method stub String name= "何国学"; String key= "degree"; String value= "研究生"; SAXReader sr= new SAXReader(); org.dom4j.Document doc= sr.read(new File(fileName)); List namelist= doc.selectNodes("/class/students/name"); java.util.Iterator iterator= namelist.iterator(); while(iterator.hasNext()) { Element element= (Element)iterator.next(); if(name!=null && name.equals(element.getText())) { Element pe= element.getParent(); List childList= pe.elements(); for(int i=0; i<childList.size(); i++) { String nodeName= ((Element)childList.get(i)).getName(); if(key!=null && key.equals(nodeName) ) { ((Element)childList.get(i)).setText(value); } } } } OutputFormat format= new OutputFormat(" ", true); format.setEncoding("UTF-8"); XMLWriter xmlWriter= new XMLWriter(new FileOutputStream(fileName), format); xmlWriter.write(doc); xmlWriter.close(); } //删除后修改指定节点 private void deleteXml() throws Exception { // TODO Auto-generated method stub SAXReader sr= new SAXReader(); Document doc= sr.read(new File(fileName2)); System.out.println(doc); } }