5

在 Delphi7 中使用 XPath 搜索 XML 文档的最佳方法是什么?

4

2 回答 2

6

这取决于 xml 文档的大小。但我对 MSXML 及其撒克逊对应物都有很好的经验。

如果 xml 很大(>50 MB)或查询很重(使用一些 // 使您的系统爬网)预计会有一些延迟时间。但否则它是完全可行的。

在更高版本中,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;
于 2009-02-05T18:40:53.263 回答
1

当我必须在 Delphi 中处理 XML 文件时,我总是使用OmniXML,这是我多年来一直在使用的组件。我对它非常满意,主要是因为它轻巧、易于使用且免费

它也可以轻松地与 XPath 一起使用。值得一试,希望对你也有帮助。

于 2009-09-17T21:01:48.347 回答