XML解析方式有三種:DOM、SAX、StAX編程
xml文檔每一個成分都是一個節點,每一個xml標籤對應一個元素節點:整個文檔是一個文檔節點,每一個xml標籤對應一個元素節點,包含早xml標籤中是文本節點,註釋是註釋節點。服務器
DOM解析:dom
DOM Document Object Model ----- 文檔對象模型 基於樹形結構的xml解析方式。 會將整個XML載入內存,以樹形結構方式存儲,易於編程 當xml文檔是聚焦大,會形成較大的資源消耗。 即將整個xml 加載內存中,造成文檔對象,全部對xml操做都對內存中文檔對象進行函數
SAX解析:性能
基於事件模型的sax解析方式 當xml 文檔很是大,不可能將xml全部數據加載到內存 即一邊解析 ,一邊處理,一邊釋放內存資源 ---- 不容許在內存中保留大規模xml 數據 使用推模式以下圖所示xml
即由服務器爲主導,向客戶端主動發送數據( 推送 ) 推模式(事件由解析器產生並經過回調函數發送給應用程序)對象
缺點:不存儲xml文檔結構,開發人員本身維護業務邏輯涉及的多層節點之間關係。blog
流式處理因此只能向後單向進行,沒法像dom那樣自由導航到以前處理過得節點上從新處理,也不支持xPath進程
stax 事件
STAX 是一種 拉模式 XML 解析方式(SAX性能不如STAX,STAX技術較新)
採起以下圖所示的模式
即拉模式由客戶端爲主導,主動向服務器申請數據( 輪詢 )(應用程序經過調用解析器推動解析進程)
簡化了處理xml文檔代碼,可同時處理多個xml文檔,可決定什麼時候中止解析。