dom4j操作xml的demo(分享)
廢話不多說,直接上代碼
package com.cn.shop.util; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.util.Iterator; 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; /** * * @author NH * */ public class XmlUtils { public static Document getDocument() { // 1.讀取xml文件獲取document對(duì)象 SAXReader reader = new SAXReader(); Document document = null; try { document = reader.read("D:\\itext\\27663.xml"); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 2.通過解析xml的文本 /* * String xmlFilePath = "D:\\itext\\27663.xml"; try { document = * DocumentHelper.parseText(xmlFilePath); } catch (DocumentException e) * { // TODO Auto-generated catch block e.printStackTrace(); } // 3.通過 * Document document = DocumentHelper.createDocument(); Element root = * document.addElement("csdn"); */ return document; } public static void anaXml() throws Exception { // 讀取xml的文本內(nèi)容來創(chuàng)建document對(duì)象 SAXReader reader = new SAXReader(); try { Document document = reader.read("D:\\itext\\27663.xml"); Element root = document.getRootElement(); System.out.println(root.getName()); getElement(root); /* elementMethod(root); */ /* * // 獲取一個(gè)節(jié)點(diǎn) Element element = root.element("title"); * * * //獲取element的id屬性節(jié)點(diǎn)對(duì)象 Attribute attr = element.attribute("id"); * //刪除屬性 element.remove(attr); * * // 添加新屬性 element.addAttribute("author", "作者"); * * // 添加新的節(jié)點(diǎn) Element newElement = root.addElement("where"); * // 獲取element中的where元素節(jié)點(diǎn)對(duì)象 Element author = * element.element("where"); // 刪除元素節(jié)點(diǎn) boolean flag = * element.remove(author); // 返回true代碼刪除成功,否則失敗 * System.out.println(flag); // 添加CDATA區(qū)域 * element.addCDATA("紅樓夢(mèng),是一部愛情小說."); // 寫入到一個(gè)新的文件中 writer(document); */ } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /* * * 所有節(jié)點(diǎn)內(nèi)容 */ public static void getElement(Element root) { // 獲取當(dāng)前節(jié)點(diǎn)的所有屬性節(jié)點(diǎn) List<Attribute> as = root.attributes(); for (Attribute a : as) { System.out.println("當(dāng)前屬性節(jié)點(diǎn)的名稱:" + a.getName()); /* * System.out.println("當(dāng)前屬性節(jié)點(diǎn)的內(nèi)容:" + a.getText()); * * System.out.println("當(dāng)前屬性節(jié)點(diǎn)的值:" + a.getValue()); */ } if (!root.getTextTrim().equals("")) { System.out.println("文本內(nèi)容::::" + root.getText()); } Iterator<Element> el = root.elementIterator(); while (el.hasNext()) { // 獲取某個(gè)子節(jié)點(diǎn)對(duì)象 Element e = el.next(); // 對(duì)子節(jié)點(diǎn)進(jìn)行遍歷 getElement(e); } } /** * 介紹Element中的element方法和elements方法的使用 * * @param node */ public static void elementMethod(Element node) { // 獲取node節(jié)點(diǎn)中,子節(jié)點(diǎn)的元素名稱為西游記的元素節(jié)點(diǎn)。 Element e = node.element("info"); // 獲取西游記元素節(jié)點(diǎn)中,子節(jié)點(diǎn)為chapter的元素節(jié)點(diǎn)(可以看到只能獲取第一個(gè)作者元素節(jié)點(diǎn)) Element author = e.element("classification"); System.out.println(e.getName() + "----" + author.getText()); // 獲取西游記這個(gè)元素節(jié)點(diǎn) 中,所有子節(jié)點(diǎn)名稱為classification元素的節(jié)點(diǎn) 。 List<Element> authors = e.elements("classification"); for (Element aut : authors) { System.out.println(aut.getText()); } // 獲取西游記這個(gè)元素節(jié)點(diǎn) 所有元素的子節(jié)點(diǎn)。 List<Element> elements = e.elements(); for (Element el : elements) { System.out.println(el.getText()); } } /** * 把document對(duì)象寫入新的文件 * * @param document * @throws Exception */ public static void writer(Document document) throws Exception { // 緊湊的格式 // OutputFormat format = OutputFormat.createCompactFormat(); // 排版縮進(jìn)的格式 OutputFormat format = OutputFormat.createPrettyPrint(); // 設(shè)置編碼 format.setEncoding("UTF-8"); // 創(chuàng)建XMLWriter對(duì)象,指定了寫出文件及編碼格式 /* * XMLWriter writer = new XMLWriter(new OutputStreamWriter(new * FileOutputStream(new File("src//a.xml")), "UTF-8"), format); */ File file = new File("c://index//大主宰.xml"); FileOutputStream fos = new FileOutputStream(file); OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); XMLWriter writer = new XMLWriter(osw); // 寫入 writer.write(document); // 立即寫入 writer.flush(); // 關(guān)閉操作 writer.close(); } // 以下的代碼為字符串與xml互轉(zhuǎn)實(shí)例 public void test() throws Exception { // 創(chuàng)建saxreader對(duì)象 SAXReader reader = new SAXReader(); // 讀取一個(gè)文件,把這個(gè)文件轉(zhuǎn)換成Document對(duì)象 Document document = reader.read(new File("src//c.xml")); // 獲取根元素 Element root = document.getRootElement(); // 把文檔轉(zhuǎn)換字符串 String docXmlText = document.asXML(); System.out.println(docXmlText); System.out.println("---------------------------"); // csdn元素標(biāo)簽根轉(zhuǎn)換的內(nèi)容 String rootXmlText = root.asXML(); System.out.println(rootXmlText); System.out.println("---------------------------"); // 獲取java元素標(biāo)簽 內(nèi)的內(nèi)容 Element e = root.element("java"); System.out.println(e.asXML()); } /** * 創(chuàng)建一個(gè)document對(duì)象 往document對(duì)象中添加節(jié)點(diǎn)元素 轉(zhuǎn)存為xml文件 * * @throws Exception */ public void test2() throws Exception { Document document = DocumentHelper.createDocument();// 創(chuàng)建根節(jié)點(diǎn) Element root = document.addElement("csdn"); Element java = root.addElement("java"); java.setText("java班"); Element ios = root.addElement("ios"); ios.setText("ios班"); writer(document); } /** * 把一個(gè)文本字符串轉(zhuǎn)換Document對(duì)象 * * @throws Exception */ public void test1() throws Exception { String text = "<csdn><java>Java班</java><net>Net班</net></csdn>"; Document document = DocumentHelper.parseText(text); Element e = document.getRootElement(); System.out.println(e.getName()); writer(document); } /** * 把document對(duì)象寫入新的文件 * * @param document * @throws Exception */ public void writer1(Document document) throws Exception { // 緊湊的格式 // OutputFormat format = OutputFormat.createCompactFormat(); // 排版縮進(jìn)的格式 OutputFormat format = OutputFormat.createPrettyPrint(); // 設(shè)置編碼 format.setEncoding("UTF-8"); // 創(chuàng)建XMLWriter對(duì)象,指定了寫出文件及編碼格式 // XMLWriter writer = new XMLWriter(new FileWriter(new // File("src//a.xml")),format); XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream(new File("src//c.xml")), "UTF-8"), format); // 寫入 writer.write(document); // 立即寫入 writer.flush(); // 關(guān)閉操作 writer.close(); } public static void main(String[] args) { try { anaXml(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
以上這篇dom4j操作xml的demo(分享)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot使用校驗(yàn)框架validation校驗(yàn)的示例
這篇文章主要介紹了springboot使用校驗(yàn)框架validation校驗(yàn)的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02Eclipse操作SVN時(shí)中斷鎖定,文件的解鎖方法
這篇文章主要介紹了Eclipse操作SVN時(shí)中斷鎖定,文件的解鎖方法,需要的朋友可以參考下2014-08-08java使用DOM4J對(duì)XML文件進(jìn)行增刪改查操作
這篇文章主要為大家詳細(xì)介紹了java使用DOM4J對(duì)XML文件進(jìn)行增刪改查操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12Maven忽略單元測(cè)試及打包到Nexus的實(shí)現(xiàn)
我們的工程在打包發(fā)布時(shí)候,通常都需要忽略單元測(cè)試,以免因環(huán)境原因,無法通過單元測(cè)試而影響發(fā)布,本文主要介紹了Maven忽略單元測(cè)試及打包到Nexus的實(shí)現(xiàn),感興趣的可以了解一下2024-04-04使用springboot logback動(dòng)態(tài)獲取application的配置項(xiàng)
這篇文章主要介紹了使用springboot logback動(dòng)態(tài)獲取application的配置項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08使用SpringMVC返回json字符串的實(shí)例講解
下面小編就為大家分享一篇使用SpringMVC返回json字符串的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03springboot如何獲取applicationContext?servletContext
這篇文章主要介紹了springboot如何獲取applicationContext?servletContext問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01Java的Cglib動(dòng)態(tài)代理實(shí)現(xiàn)方式詳解
這篇文章主要介紹了Java的Cglib動(dòng)態(tài)代理實(shí)現(xiàn)方式詳解,CGLIB是強(qiáng)大的、高性能的代碼生成庫(kù),被廣泛應(yīng)用于AOP框架,它底層使用ASM來操作字節(jié)碼生成新的類,為對(duì)象引入間接級(jí)別,以控制對(duì)象的訪問,需要的朋友可以參考下2023-11-11