2010-03-13 125 views
5

有德爾福有3 IDOMImplementation可供選擇:除了MSXML以外,還有其他更好的IDOMImplementation嗎?

  1. MSXML
  2. 的Xerces XML
  3. ADOM XML V4

MSXML是默認IDOMImplementation。

我的測試是計算需要加載10MB xml文件的時間。我使用一個使用XML數據綁定從XSD生成的Delphi單元來加載xml文件。這個單位有3個共同的功能:

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

我從一些評論認爲MSXML的開銷很高,如果比其他XML解析器不進行網絡學習。但是,我的研究表明,MSXML是其中最好的。 Xerces的XML第二和ADOM XML V4最差:

  1. MSXML - 0.6410秒
  2. 的Xerces XML - 2.4220秒
  3. ADOM XML V4 - 67.50秒

我也OmniXML會遇到聲稱與MSXML相比具有更好的性能,但我從未成功將其與由XML數據綁定生成的單元一起使用。

是否有任何其他供應商實現IDOMImplementation的德爾福工作比MSXML好得多?我用Delphi 2010和Windows 7

+2

你確定你需要一個DOM解析器嗎? SAX解析器速度更快。 – 2010-03-13 09:44:35

+0

我不太瞭解XML,但我確實知道計算,我知道這是一個通用規則:如果有Microsoft版本和其他替代品,至少有一種替代品*會更好。 – 2010-03-13 12:57:22

+0

OmniXML爲什麼不能爲您工作?我在很多產品中使用它,並取得了巨大的成功。是的,它比MSXML好吃。 – Runner 2010-03-13 18:20:31

回答

1

OmniXML比MSXML速度更快,是開放源代碼。這是MSXML的複雜性,所以開關很容易。事件接口名稱是相同的。然後有擴展OmniXML接口的SimpleStorage,以便使用XML變得非常容易。查看關於SimpleStorage使用情況的演示和博客文章。請記住,SimpleStorage中更復雜的操作犧牲了易用性和功能的一點速度。

相關問題