利用java 寫XML 修改XML檔案
阿新 • • 發佈:2019-01-10
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; 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 Demo02Xml__利用java修改xml內容 { public static void main(String[] args) throws IOException, DocumentException { //Java_Write_XML(); //java寫xml java_XiuGai__XML(); // java修改xml } public static void java_XiuGai__XML() throws DocumentException, IOException { /* * 2.java修改xml */ // 建立SAXReader物件 SAXReader sr = new SAXReader(); // 需要匯入jar包:dom4j // 關聯xml Document document = sr.read("students.xml"); // 獲取根元素 Element root = document.getRootElement(); // 獲取student標籤 Element student = root.element("student"); // 利用student標籤新增屬性 Element addAttribute = student.addAttribute("身份證號", "XXXXX"); // 在xml的某一個標籤裡修改一個屬性 Attribute id_xg = student.attribute("id"); id_xg.setText("it002"); // 修改xml裡某一個元素 // 根據標籤修改元素 // 獲取sex標籤 Element sex = student.element("sex"); sex.setText("女女女女"); // 根據屬性值修改元素 List<Element> elements = student.elements(); for (Element element : elements) { if (element.getText().endsWith("明")) { element.setText("小小小小小明"); } } // 呼叫下面的靜態方法完成xml的寫出 saveDocument(document, new File("students.xml")); } public static void Java_Write_XML() throws IOException { /* * 1.java寫xml */ // 生成xml的第一行 <?xml version="1.0" encoding="UTF-8"?> Document document = DocumentHelper.createDocument(); // 新增一個元素,作為根元素students Element root = document.addElement("students"); // 根元素下的一個元素student Element student = root.addElement("student"); // 在student標籤裡新增屬性 student.addAttribute("id", "it001"); // 為其新增元素 Element name = student.addElement("name"); Element name1 = student.addElement("name"); Element sex = student.addElement("sex"); name.setText("小紅"); name1.setText("小明"); sex.setText("男"); // 上面的操作都在記憶體中 // 呼叫下面的靜態方法完成xml的寫出 saveDocument(document, new File("students.xml")); } // 下面的為固定程式碼---------可以完成java對XML的寫,改等操作 public static void saveDocument(Document document, File xmlFile) throws IOException { Writer osWrite = new OutputStreamWriter(new FileOutputStream(xmlFile));// 建立輸出流 OutputFormat format = OutputFormat.createPrettyPrint(); // 獲取輸出的指定格式 format.setEncoding("UTF-8");// 設定編碼 ,確保解析的xml為UTF-8格式 XMLWriter writer = new XMLWriter(osWrite, format);// XMLWriter // 指定輸出檔案以及格式 writer.write(document);// 把document寫入xmlFile指定的檔案(可以為被解析的檔案或者新建立的檔案) writer.flush(); writer.close(); } } //Java寫出的XML //Java修改後的XML