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. Стоит попробовать, я надеюсь, что это поможет и вам.