1.理解DOM——很詳盡的DOM入門資料
https://www6.software.ibm.com/developerworks/cn/education/xml/x-udom/section2.html
http://www.cnblogs.com/huangyu/articles/33572.html

DOM路標圖
2.理解SAX
https://www6.software.ibm.com/developerworks/cn/education/xml/x-usax/index.html
http://www.cnblogs.com/huangyu/archive/2004/08/16/33934.html
SAX 是什么?
用于讀取和操作 XML 文件的標準是文檔對象模型(Document Object Model,DOM)。遺憾的是,DOM 方法涉及讀取整個文件并將該文件存儲在一個樹結構中,而這樣可能是低效的、緩慢的,并且很消耗資源。
一種替代技術就是 Simple API for XML,或稱為 SAX。SAX 允許您在讀取文檔時處理它,從而不必等待整個文檔被存儲之后才采取操作。
SAX 是由 XML-DEV 郵件列表的成員開發的,現在對應的 Java 版本是 SourceForge 項目(請參閱 參考資料)。該項目的目的是為 XML 的使用提供一種更自然的手段 —— 換句話說,也就是不涉及 DOM 所必需的開銷和概念跳躍。
項目的成果是一個基于事件 的 API。解析器向一個事件處理程序發送事件,比如元素的開始和結束,而事件處理程序則處理該信息。然后應用程序才能夠處理該數據。原始的文檔仍然保持原樣,但是 SAX 提供了操作數據的手段,因此數據可以用于另一個進程或文檔。
SAX 沒有官方的標準機構,由萬維網聯盟(Wide Web Consortium,W3C)或其他官方機構維護,但它是 XML 社區事實上的標準。
SAX 處理涉及以下步驟:
- 創建一個事件處理程序。
- 創建 SAX 解析器。
- 向解析器分配事件處理程序。
- 解析文檔,同時向事件處理程序發送每個事件。
基于事件的處理的優點和缺點
這種處理的優點非常類似于流媒體的優點。分析能夠立即開始,而不是等待所有的數據被處理。而且,由于應用程序只是在讀取數據時檢查數據,因此不需要將數據存儲在內存中。這對于大型文檔來說是個巨大的優點。事實上,應用程序甚至不必解析整個文檔;它可以在某個條件得到滿足時停止解析。一般來說,SAX 還比它的替代者 DOM 快許多。
另一方面,由于應用程序沒有以任何方式存儲數據,使用 SAX 來更改數據或在數據流中往后移是不可能的。
SAX 和 DOM 不是相互排斥的,記住這點很重要。您可以使用 DOM 來創建 SAX 事件流,也可以使用 SAX 來創建 DOM 樹。事實上,用于創建 DOM 樹的大多數解析器實際上都使用 SAX 來完成這個任務!
3.DW上的相關資源
http://www.ibm.com/developerworks/cn/xml/
4.使用Xpath提高基于DOM的XML處理效率
http://www.ibm.com/developerworks/cn/xml/x-domjava/index.shtml