What is the best way of searching XML documents using XPath in Delphi7?
+3
A:
It depends on the size of the xml document. But I have good experience with both MSXML and its Saxon counterpart.
If the xml is large (>50 MB) or the queries are heavy (use some // to make your system crawl) expect some delay time. But else it is perfectly doable.
In later versions, msxml is available as a unit. In version 7 you need to install a type library:
- Go to Project\Import type library
- Select Microsoft XML, (the highest version you can find)
- Select Create unit to create MSXML_TLB
You can use MSXML_TLB to read xml documents, use xslt and perform xpath queries:
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;
Gamecat
2009-02-05 18:40:53
Thanks for your answere... How do I "install" MSXML in Delphi?
Ricardo Acras
2009-02-06 19:39:29
I added an example in the answer. Hope it works.
Gamecat
2009-02-06 23:05:55
A:
Hi,
When I have to deal with XML files in Delphi I always use OmniXML, a component I've been using for years. I'm totally happy with it, mainly because it's light, easy to use and free.
And it works with XPath in a easy way also. It's worth a try, I hope it helps you also.
SoftwareSculptor
2009-09-17 21:01:48