2010-06-30 88 views

回答

7

Xerces 一個DOM解析器。這是Java或C++中的Apache實現。

你想要考慮的兩個是SAX和DOM。 DOM在內存中創建一個對象樹; SAX沒有。在DOM完成解析之後,您可以操作對象樹; SAX使用事件模型來即時處理XML。

SAX或DOM將「工作」。您的選擇通常取決於您是否將其保存在內存中以便操作或處理它。如果XML流爲千兆字節,則可能無法一次全部存儲。在這種情況下,SAX是一個不錯的選擇,因爲您可以在解析時隨時使用它。

谷歌是你的朋友:開始瞭解DOM4J和JDOM。

如果您正在編寫Java,我會推薦JDOM。它需要處理很多樣板文件。

+0

另外添加丸解析器例如dom4j和jdom – Mark 2010-06-30 11:16:54

+0

嘿,你能給我一些有用的鏈接。 – Manu 2010-06-30 11:18:13

+0

以及哪個解析器最適合使用。 – Manu 2010-06-30 11:19:21

3

有兩種方法可以解析Xerces.viz SAX & DOM中的xml文件。 SAX解析器:

  1. 基於事件的模型。
  2. 串行訪問(事件流)。
  3. 內存使用率低(僅生成事件)。
  4. 處理文檔的部分內容(捕獲相關事件)。
  5. 僅處理文檔一次。
  6. 向後導航不可能,因爲它會按順序處理文檔。
  7. 對象將被創建。

DOM解析器:

  1. (基於對象的)樹數據結構。
  2. 隨機存取(內存數據結構)。
  3. 高內存使用率(文檔被加載到內存中)。
  4. 編輯文檔(處理內存數據結構)。
  5. 多次處理(文檔在內存中加載)。
  6. 輕鬆導航。
  7. 存儲爲對象。