DOM4J核心類和關係圖
阿新 • • 發佈:2019-01-03
- java本身提供的XML解析工具
- DOM解析(w3c規範):將整個xml檔案載入到記憶體中,支援對xml檔案的讀取和增刪改查,但是缺點就是讀取操作太過繁瑣,如果xml檔案過大速度會大大降低.
- SAX解析(非w3c規範):按照檔案順序,逐行讀取xml檔案,所佔記憶體小,適合讀取大型xml檔案,支援事件處理,但是缺點是無法進行xml資料輸出,而卻解析器實現難度較大,不能夠回讀.
- 於是後來出現了另一個JDOM解析,JDOM解析和DOM解析採用都是同一個解析器,JDOM將DOM和SAX的優點結合起來,簡化了DOM讀取操作的過程,簡化了輸出DOM樹的操作.但是本質上沒有什麼區別.
DOM4J–更強大的解析工具
-
DOM4J解析xml檔案比DOM和SAX還有JDOM都要更強大.但是DOM4J並不是Java官方提供的操作介面,要使用DOM4J可以到官網中下載DOM4J.jar包,將jar包匯入到專案中即可使用.
-
DOM4j解析的好處在與簡化了,xml文件資料的增刪改查和xml文件的輸出操作,方便了開發人員的操作,便於理解.
-
DOM4J的核心類關係圖
認識DOM4j核心類
- org.dom4j.DocumentHelper工具類
- 主要作用於建立xml文件
建立文件方法 | public static Document createDocument() |
建立元素方法 | public static Element createElement(QName qname) |
建立指定元素的屬性不推薦使用 | public static Attribute createAttribute(Element owner,QName qname, String value) |
- 節點描述介面:org.dom4j. Node
取得節點名稱 | public String getName() |
設定節點名稱 | public void setName(String name) |
取得父元素 | public Element getParent()如果該節點是根節點,則返回null |
取得元素文字 | public String getText() |
設定元素內容 | public void setText(String text) |
設定父元素 | public void setParent(Element parent) |
輸出 | public void write(Writer writer) throws IOException |
- org.dom4j. Branch介面,描述節點的公共行為
追加子元素 | public void add(Element element) |
建立並追加新的子元素 | public Element addElement(String name) |
取得指定索引的node元素 | public Node node(int index) throws IndexOutOfBoundsException |
取得節點個數 | public int nodeCount() |
返回包含這個分支下的所有子節點的Iterator集合,便於輸出使用 | public Iterator nodeIterator() |
刪除指定元素 | public boolean remove(Element element) |
- 文件介面:org.dom4j. Document
設定XML檔案編碼 | public void setXMLEncoding(String encoding) |
- 元素介面:org.dom4j. Element
取得指定屬性的內容 | public String attributeValue(QName qName) |
取得所有屬性個數 | public int attributeCount() |
返回指定名稱元素以Iterator方式返回元素 | public Iterator elementIterator(String name) |
返回指定名稱的所有元素 | public List elements(String name) |
返回並刪除空格資訊 | public String elementTextTrim(String name) |
- org.dom4j.io.OutputFormat:輸出格式化類
建立壓縮輸出(輸出的資料不含有縮排空格) | public static OutputFormat createCompactFormat() |
美化輸出(資料間含有縮排空格) | public static OutputFormat createPrettyPrint() |
- 輸出類:org.dom4j.io. XMLWriter
構造方法,指定輸出來源,和指定輸出格式 | public XMLWriter(OutputStream out, OutputFormat format) throws UnsupportedEncodingException |
輸出整個xml檔案 | public void write(Document doc) throws IOException |