除了MSXML之外还有更好的IDOMImplementation吗?

时间:2010-03-13 03:25:31

标签: xml delphi

Delphi中有3个IDOMImplementation:

  1. MSXML
  2. Xerces XML
  3. ADOM XML v4
  4. MSXML是默认的IDOMImplementation。

    我的测试是计算加载10MB xml文件所需的时间。我使用从XSD生成的Delphi单元,使用XML数据绑定来加载xml文件。该单元有3个常用功能:

    function Getmenubar(Doc: IXMLDocument): IXMLMenubarType;
    function Loadmenubar(const FileName: WideString): IXMLMenubarType;
    function Newmenubar: IXMLMenubarType;
    

    我从网上了解到有些评论说MSXML的开销很高,如果与其他XML解析器相比它不会执行。但是,我的研究表明,MSXML是最好的。 Xerces XML 2nd和ADOM XML v4是最糟糕的:

    1. MSXML - 0.6410秒
    2. Xerces XML - 2.4220秒
    3. ADOM XML v4 - 67.50秒
    4. 我也遇到过OmniXML,它声称与MSXML相比具有更好的性能,但我从未成功地将它与XML数据绑定生成的单元一起使用。

      有没有其他供应商实现Delphi的IDOMImplementation比MSXML好得多?我正在使用Delphi 2010和Windows 7。

2 个答案:

答案 0 :(得分:2)

有一个名为NativeXML的工具(最近开源) http://www.simdesign.nl/xml.html

答案 1 :(得分:1)

OmniXML比MSXML更快,而且是OpenSource。它是MSXML的复杂功能,所以开关非常简单。事件接口名称相同。然后有SimpleStorage扩展了OmniXML接口,因此使用XML变得非常容易。查看有关SimpleStorage使用情况的演示和博客文章。请记住,SimpleStorage中更复杂的操作会牺牲一点速度来提高易用性和功耗。