想编一个XML的解释器,以后要向Java移植,用SAX好还是DOM?

本文探讨了在开发XML解析器时SAX与DOM两种方法的优缺点。SAX适用于资源有限的情况,采用事件驱动的方式,内存占用较少;DOM则更适合需要随机访问节点的应用场景,但内存消耗较大。对于计划向Java移植的项目,建议采用SAX2.0。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想编一个XML的解释器,以后要向Java移植,用SAX好还是DOM? 

废话当然是用SAX好,而且用SAX2.0  
   
  如果VC   仅开发在Windows用msXML4.dll(+msXML4r.dll)  
  内有SAX2.0标准解析包与JAVA的标准SAX2.0完全一样  
   
  主要是msXML.dll在IE4后安装都有带,具体有%windir%/system32/msXML(x).dll不同版本  
   
  用3以上的版本才用SAX2,还有对它的一些非标准扩展操作  
  具体下载SDK   Help有详档   

 

DOM将文档分析成树模型,存贮在内存中,对内存需求比较大,但便于访问任意指定节点,而SAX分析数据,调用相应的start和end   handle,内存需要小,但不能访问任意指定节点.其实两者并不矛盾。事实上,大部分的XML   parser都是使用SAX,分析原始数据,在相应的start和end   handle中再建立dom节点.  
   
  如果你做xml   parser的话,两者都实现为好 

 

 

有很多在VC下用XML都用Xml   parser  
  资料也比较多,所以开始在项目时我也想用这个解析器  
   
  不过我就是考虑microsoft   的xml解析dll因为IE4就有带,虽版本较低,但是这样的话,实现简单DOM是没问题的  
   
  至于顶楼的小子想不给分,冤狂啊~~~~~~~~~~~~~~~~版主~~~~~~~救我啊~~~  
  哼~~~~~你会给扣信誉分的@@@  
   
  引用一经典话:一个XML文件1M那么  
  DOM方式用内存~=1M*10  
  SAX方式~=1M  
   
  而且SAX事件驱动方式,你可以在Handle里写事件,做DOM实现的东东  
  现在的标准也是用SAX2,至少JAVA早就这样了   

 

dom把xml全部读入内存,  
  sax是顺序访问,  
  我觉得dom数据处理灵活,而sax资源利用率好,个人倾向DOM!
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值