XML PULL SAX到底有什麼區別?

以前雖然一直知道存在經常使用的幾種XML解析方式,也知道SAX的意思,可是沒有深刻追究過PULL跟SAX的區別。PULL跟SAX雖然都是基於事件的,可是二者最重要的區別應該是:函數

SAX能夠認爲是「PUSH「的,跟PULL相對。由於Parser在遇到特定事件源的時候會將數據傳遞給回調函數來處理,從這個意義上講數據是」推送「給用戶的,而PULL方式是遇到特定事件時由用戶去從Parser中獲取本身感興趣的,感受數據像是」拉「下來的。事件

還有一個區別是:在PULL式解析過程當中(while循環裏),能夠退出循環;可是在SAX過程當中,一旦開始解析就要解析完成。回調函數

相關文章
相關標籤/搜索