您好,登錄后才能下訂單哦!
本篇內容主要講解“Java dom4j生成與解析XML的實例介紹”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java dom4j生成與解析XML的實例介紹”吧!
使用方式:在pom.xml中導入dom4j對應的jar
<dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency>
優點:dom4j使Java生成和解析XML靈活性變高,并且代碼易于維護
API操作類:
Document:表示xml文檔信息,是一個樹形結構
Eelment:表示xml的元素結點,提供一些操作其子元素方法的,如文本、屬性、名稱空間等
Attribute:表示元素結點中的屬性
實現步驟:
第一步:創建一個Document實例
Document doc = DocumentHelper.createDocument();
第二步:先添加一個根結點,然后再添加子結點,構造成一個樹形結構
Element root = doc.addElement("root");
第三步:添加xml文件樣式(也可自定義樣式),并輸出xml文件到指定的路徑下
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new FileOutputStream(file), format);
writer.write(doc);
實現源碼:
package com.oysept.xml; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; import org.jdom2.output.Format; /** * dom4j生成xml * @author ouyangjun */ public class CreateDom4j { public static void main(String[] args) { // 執行dom4j生成xml方法 createDom4j(new File("E:\\dom4j.xml")); } public static void createDom4j(File file) { try { // 創建一個Document實例 Document doc = DocumentHelper.createDocument(); // 添加根節點 Element root = doc.addElement("root"); // 在根節點下添加第一個子節點 Element oneChildElement= root.addElement("person").addAttribute("attr", "root noe"); oneChildElement.addElement("people") .addAttribute("attr", "child one") .addText("person one child one"); oneChildElement.addElement("people") .addAttribute("attr", "child two") .addText("person one child two"); // 在根節點下添加第一個子節點 Element twoChildElement= root.addElement("person").addAttribute("attr", "root two"); twoChildElement.addElement("people") .addAttribute("attr", "child one") .addText("person two child one"); twoChildElement.addElement("people") .addAttribute("attr", "child two") .addText("person two child two"); // xml格式化樣式 // OutputFormat format = OutputFormat.createPrettyPrint(); // 默認樣式 // 自定義xml樣式 OutputFormat format = new OutputFormat(); format.setIndentSize(2); // 行縮進 format.setNewlines(true); // 一個結點為一行 format.setTrimText(true); // 去重空格 format.setPadText(true); format.setNewLineAfterDeclaration(false); // 放置xml文件中第二行為空白行 // 輸出xml文件 XMLWriter writer = new XMLWriter(new FileOutputStream(file), format); writer.write(doc); System.out.println("dom4j CreateDom4j success!"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
XML文件效果圖:
實現步驟:
第一步:創建一個SAXReader解析器
SAXReader reader = new SAXReader();
第二步:解析xml文件,重新構建成一個Document對象
Document doc = reader.read(file);
第三步:處理Document對象信息,在控制臺打印
實現源碼:
package com.oysept.xml; import java.io.File; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.CDATA; import org.dom4j.Comment; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.Text; import org.dom4j.io.SAXReader; /** * dom4j解析xml * @author ouyangjun */ public class ParseDom4j { public static void main(String[] args) { // 執行dom4j解析xml方法 parseDom4j(new File("E:\\dom4j.xml")); } public static void parseDom4j(File file) { try { // 創建一個SAXReader解析器 SAXReader reader = new SAXReader(); // 讀取xml文件,轉換成Document結點 Document doc = reader.read(file); // 遞歸打印xml文檔信息 StringBuffer buffer = new StringBuffer(); parseElement(doc.getRootElement(), buffer); System.out.println(buffer.toString()); } catch (DocumentException e) { e.printStackTrace(); } } @SuppressWarnings("unchecked") public static void parseElement(Element element, StringBuffer buffer) { buffer.append("<"+element.getName()); List<Attribute> attrs = element.attributes(); if (attrs != null) { for (Attribute attr : attrs) { buffer.append(" "+attr.getName()+"=\""+attr.getValue()+"\""); } } buffer.append(">"); Iterator<Node> iterator = element.nodeIterator(); while (iterator.hasNext()) { Node node = iterator.next(); if (node instanceof Element) { Element eleNode = (Element) node; parseElement(eleNode, buffer); } if (node instanceof Text) { Text text = (Text) node; buffer.append(text.getText()); } if (node instanceof CDATA) { CDATA dataNode = (CDATA) node; buffer.append(dataNode.getText()); } if (node instanceof Comment) { Comment comNode = (Comment) node; buffer.append(comNode.getText()); } } buffer.append("</"+element.getName()+">"); } }
XML文件解析效果圖打印:
到此,相信大家對“Java dom4j生成與解析XML的實例介紹”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。