// 建立XML public static void gernatorXML() { // 創建Document對象 Document doc = DocumentHelper.createDocument(); // 創建根節點students Element studentsElement = doc.addElement("students"); // 創建子節點student Element studentElement1 = studentsElement.addElement("student"); // 添加ID屬性 studentElement1.addAttribute("id", "1001"); // 添加子節點 studentElement1.addElement("name").setText("張三"); studentElement1.addElement("age").setText("18"); studentElement1.addElement("sex").setText("男"); studentElement1.addElement("phone").setText("13800138000"); studentElement1.addElement("address").setText("深圳寶安"); // 再創建同樣的2個student節點 Element studentElement2 = studentsElement.addElement("student"); // 添加ID屬性 studentElement2.addAttribute("id", "10012"); // 添加子節點 studentElement2.addElement("name").setText("李四"); studentElement2.addElement("age").setText("19"); studentElement2.addElement("sex").setText("女"); studentElement2.addElement("phone").setText("13412369854"); studentElement2.addElement("address").setText("上海"); // 再創建同樣的2個student節點 Element studentElement3 = studentsElement.addElement("student"); // 添加ID屬性 studentElement3.addAttribute("id", "10013"); // 添加子節點 studentElement3.addElement("name").setText("王五"); studentElement3.addElement("age").setText("25"); studentElement3.addElement("sex").setText("女"); studentElement3.addElement("phone").setText("13410110104"); studentElement3.addElement("address").setText("廣東"); try { // 創建XML 將Document寫入XML // 設置格式 OutputFormat format = OutputFormat.createPRettyPrint(); // 設置字符編碼也可以設置為gb2312或者gbk format.setEncoding("utf-8"); // 輸入 XMLWriter writer = new XMLWriter( new FileWriter("xml/students.xml"), format); // 寫入文檔 writer.write(doc); // 關閉流 writer.close(); // 輸出提示 System.out.println("======寫入成功======="); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }二、解析XML
// 讀取XML public static void getXML() { try { // 讀取XML SAXReader reader = new SAXReader(); Document doc = reader.read("xml/students.xml"); // 獲取根節點 Element root = doc.getRootElement(); // 獲取子節點集合 List<Element> stulList = root.elements(); // 遍歷 for (Element ele : stulList) { // 獲取屬性 String id = ele.attributeValue("id"); System.out.println("學生ID: " + id); // 獲取子節點的文本內容 name String name = ele.elementText("name"); // age年齡 String age = ele.elementText("age"); // sex String sex = ele.elementTextTrim("sex"); // phone String phone = ele.elementTextTrim("phone"); // address String address = ele.elementTextTrim("address"); System.out.println("姓名:" + name + "/t年齡: " + age + "/t 性別: " + sex + "/t/t電話:" + phone + "/t/t地址: " + address); } } catch (DocumentException e) { e.printStackTrace(); } }三、增加節點
//增加新的節點 public static void addXML(){ try { //讀取XML創建解析器 SAXReader reader=new SAXReader(); //創建Document對象 Document doc=reader.read("xml/students.xml"); //獲取根節點 Element root=doc.getRootElement(); //創建新的節點 Element student=root.addElement("student"); //添加屬性 student.addAttribute("id", "10020"); //創建子節點 student.addElement("name").setText("張三豐"); student.addElement("age").setText("108"); student.addElement("sex").setText("男"); student.addElement("phone").setText("13800138001"); student.addElement("address").setText("武當山"); //寫入XML //設置字符編碼和格式 OutputFormat format=new OutputFormat(); format.setEncoding("utf-8"); //創建輸出流 XMLWriter writer=new XMLWriter(new FileWriter("xml/students.xml"), format); //寫入Document writer.write(doc); //關閉流 writer.close(); //給出提示 System.out.println("======增加成功======="); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }四、修改節點
//修改節點內容根據 id10013將王五的姓名=王小五,年齡30,性別:男,電話:138000138000,地址:北京 public static void modify(){ try { //創建SAXReader解析器 SAXReader reader=new SAXReader(); //創建Document Document doc=reader.read("xml/students.xml"); //找到根節點 Element root=doc.getRootElement(); //子節點集合 List<Element> studentList=root.elements(); //遍歷查找 for (Element ele : studentList) { if(ele.attributeValue("id").equals("10013")){ ele.element("name").setText("王小五"); ele.element("age").setText("30"); ele.element("sex").setText("男"); ele.element("phone").setText("138000138000"); ele.element("address").setText("北京"); } } //寫入XML //設置字符格式和編碼 OutputFormat format=new OutputFormat(); format.setEncoding("utf-8"); XMLWriter writer=new XMLWriter(new FileWriter("xml/students.xml"), format); //將Document寫入 writer.write(doc); //關閉流 writer.close(); //給出提示 System.out.println("====修改成功===="); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }五、刪除節點XML
/刪除節點 刪除王小五的節點 public static void delete(){ try { //創建SAXReader 解析器 SAXReader reader=new SAXReader(); //創建Document對象 Document doc=reader.read("xml/students.xml"); //獲取根節點 Element root=doc.getRootElement(); //集合 List<Element> stuList=root.elements(); //遍歷 for (Element ele : stuList) { if(ele.attributeValue("id").equals("10013")){ //獲取父節點,并刪除這個節點 ele.getParent().remove(ele); } } //寫入XML //設置字符編碼格式 OutputFormat format =new OutputFormat(); format.setEncoding("utf-8"); //輸出流 XMLWriter writer=new XMLWriter(new FileWriter("xml/students.xml"), format); writer.write(doc); writer.close(); System.out.println("===刪除成功==="); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
新聞熱點
疑難解答