可以使用SAX來查詢或者閱讀XML文檔。SAX可以快速掃描一個(gè)大型的XML文檔,當(dāng)它找到查詢標(biāo)準(zhǔn)時(shí)就會(huì)立即停止,然后再處理之。DOM是把XML全部加載到內(nèi)存中建立一棵樹之后再進(jìn)行處理。所以DOM不適合處理大型的XML【會(huì)產(chǎn)生內(nèi)存的急劇膨脹】。
同理,DOM的弱項(xiàng)就是SAX的強(qiáng)項(xiàng),SAX不必把全部的xml都加載到內(nèi)存中。但是SAX的缺點(diǎn)也很明顯,它只能對(duì)文件順序解析一遍,不支持對(duì)文件的隨意存取。SAX也僅僅能夠讀取文件的內(nèi)容,并不能修改內(nèi)容。DOM可以隨意修改文件樹,從而修改了xml文件。
SAX和DOM的不同.jpg
上圖中描述了SAX和DOM的不同。
SAX適于處理下面的問題:
1、對(duì)大型文件進(jìn)行處理;
2、只需要文件夾的部分內(nèi)容,或者只需從文件中得到特定信息。
3、想建立自己的對(duì)象模型的時(shí)候。
DOM適于處理下面的問題:
1、需要對(duì)文件進(jìn)行修改;
2、需要隨機(jī)對(duì)文件進(jìn)行存取