Calvin's Tech Space

          成于堅忍,毀于浮躁

             :: 首頁 :: 聯系 :: 聚合  :: 管理

          公告

          搜索

          •  

          最新評論

           

          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路標圖
          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 處理涉及以下步驟:

          1. 創建一個事件處理程序。
          2. 創建 SAX 解析器。
          3. 向解析器分配事件處理程序。
          4. 解析文檔,同時向事件處理程序發送每個事件。

          基于事件的處理的優點和缺點

          這種處理的優點非常類似于流媒體的優點。分析能夠立即開始,而不是等待所有的數據被處理。而且,由于應用程序只是在讀取數據時檢查數據,因此不需要將數據存儲在內存中。這對于大型文檔來說是個巨大的優點。事實上,應用程序甚至不必解析整個文檔;它可以在某個條件得到滿足時停止解析。一般來說,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

          posted on 2009-09-21 17:19 calvin 閱讀(226) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 广饶县| 九寨沟县| 石楼县| 重庆市| 德化县| 长治县| 略阳县| 高青县| 泰宁县| 黄石市| 拉孜县| 莎车县| 榆林市| 马公市| 舟曲县| 台东市| 弥渡县| 江孜县| 商河县| 克山县| 运城市| 洱源县| 慈溪市| 大宁县| 增城市| 顺昌县| 平安县| 南乐县| 那曲县| 客服| 江油市| 抚宁县| 石狮市| 资源县| 洛扎县| 昌江| 鄂托克旗| 龙南县| 金华市| 汤原县| 红桥区|