XPath в Delphi7?

Каков наилучший способ поиска документов XML с использованием XPath в Delphi7?

2 ответа

Решение

Это зависит от размера XML-документа. Но у меня есть хороший опыт работы с MSXML и его саксонским аналогом.

Если размер xml велик (>50 МБ) или запросы тяжелые (используйте // для запуска сканирования системы), ожидайте некоторой задержки. Но в остальном это вполне выполнимо.

В более поздних версиях msxml доступен как единое целое. В версии 7 вам необходимо установить библиотеку типов:

  • Перейти к проекту \ Импорт библиотеки типов
  • Выберите Microsoft XML, (самая высокая версия, которую вы можете найти)
  • Выберите Создать модуль, чтобы создать MSXML_TLB

Вы можете использовать MSXML_TLB для чтения XML-документов, использования xslt и выполнения запросов xpath:

var
  doc  : IXMLDomDocument2;
  list : IXMLDomNodeList;
  node : IXMLDomNode;
  i    : Integer;

begin
  doc := CoDOMDocument.Create;
  doc.load(xmlfilename); 

  list := doc.selectNodes(xpath);
  for i := 0 to list.length-1 do begin
    node := list.item[i];
    if node<>nil then
      Memo1.Lines.Add(node.nodeName);
  end;
end;

Когда мне приходится иметь дело с XML-файлами в Delphi, я всегда использую OmniXML, компонент, которым я пользовался годами. Я полностью доволен этим, в основном потому, что он легкий, простой в использовании и бесплатный.

И это легко работает с XPath. Стоит попробовать, я надеюсь, что это поможет и вам.

Другие вопросы по тегам