1. 程式人生 > >DOM4J核心類和關係圖

DOM4J核心類和關係圖

  • 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