XPath в Delphi7? - PullRequest
       32

XPath в Delphi7?

5 голосов
/ 05 февраля 2009

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

Ответы [ 2 ]

6 голосов
/ 05 февраля 2009

Это зависит от размера документа 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;
1 голос
/ 18 сентября 2009

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

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

...