之前簡單介紹了利用SAX解析方式解析xml文檔,然后在總結一下另一種解析xml文檔的方式——dom解析
我們也同樣準備一個xml文檔
<books> <book> <title>java從入門到放棄</title> <PRice>10元</price> <author>張三</author> </book> <book> <title>C語言從入門到放棄</title> <price>12元</price> <span style="white-space:pre"> </span><author>李四</author> </book> </books>對于dom解析的過程:在解析xml文檔時會在內存中創建一個document類型的dom對象,代表著整個文檔,接著讀取books會在內存中創建一個element對象,并且在dom對象中保存了對books的引用,表明books是dom的子節點,然后每一次讀到一個子節點的時候都會像之前一樣創建一個element對象以此類推(標簽體和屬性也可以看做是element的一個 子節點),這樣讀取完整個xml文檔,就在內存當中創建一個dom樹,如圖所示:
從前面的分析我們可以看到dom解析的優點是:十分的便于進行增刪改查的操作,只需解析一次拿到dom對象后可以重復的使用,減少解析的次數
缺點是:解析的過程比較慢,需要將整個文檔都解析完成后才能進行操作,同時將整個文檔都加載到內存中時非常的消耗內存。
而SAX解析的優點就是:不需要整個文檔都加載到內存中時才進行操作,當解析到某一個地方時自動的觸發對相應的方法,文檔解析的效率較高,同時對內存的消耗很少,無論多大的xml文檔都可以進行解析。
缺點:每一次解析只能處理一次,在想對文檔進行處理時還要再掃描一次。
目前使用較多的還是SAX解析,效率較高。畢竟你想修改xml文檔時自己手動的去修改就行了,干嘛要使用程序去修改呢。
新聞熱點
疑難解答