想编一个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!