在Delphi7中使用XPath搜索XML文档的最佳方法是什么?
答案 0 :(得分:6)
这取决于xml文档的大小。但我对MSXML及其Saxon同行都有很好的经验。
如果xml很大(> 50 MB)或查询很重(使用一些//来进行系统爬网),则需要一些延迟时间。但是它完全可行。
在更高版本中,msxml作为一个单元提供。在版本7中,您需要安装类型库:
您可以使用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 :(得分:1)
当我必须在Delphi中处理XML文件时,我总是使用OmniXML,这是我多年来一直使用的组件。我对它非常满意,主要是因为它轻便,易于使用且免费。
它也可以轻松地与XPath一起使用。值得一试,我希望它也能帮到你。