Есть ли лучший IDOMImplementation, кроме MSXML? - PullRequest
5 голосов
/ 13 марта 2010

В Delphi доступно 3 варианта реализации:

  1. MSXML
  2. Xerces XML
  3. ADOM XML v4

MSXML является IDOMImplementation по умолчанию.

Мой тест - это подсчет времени, необходимого для загрузки 10 МБ XML-файла. Я использую модуль Delphi, сгенерированный из XSD, используя привязку данных 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 секунд

Я также сталкивался с OmniXML, который утверждает, что имеет гораздо лучшую производительность по сравнению с MSXML, но мне так и не удалось использовать его с модулем, генерируемым связыванием данных XML.

Есть ли другой поставщик, который реализует IDOMImplementation Delphi, который работает намного лучше, чем MSXML? Я использую Delphi 2010 и Windows 7.

Ответы [ 2 ]

2 голосов
/ 13 марта 2010

Существует инструмент с именем NativeXML (недавно выходит с открытым исходным кодом) http://www.simdesign.nl/xml.html

1 голос
/ 13 марта 2010

Существует OmniXML , который работает быстрее, чем MSXML, и является OpenSource. Это сложный MSXML, поэтому переключение очень простое. У событий имена интерфейсов совпадают. Затем есть SimpleStorage , который расширяет интерфейсы OmniXML, так что работа с XML становится очень простой. Посмотрите демонстрации и посты в блоге об использовании SimpleStorage. Просто имейте в виду, что более сложные операции в SimpleStorage приносят в жертву небольшую скорость для простоты использования и мощности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...