Delphi7中的XPath?

时间:2009-02-05 18:14:03

标签: delphi delphi-7

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

2 个答案:

答案 0 :(得分:6)

这取决于xml文档的大小。但我对MSXML及其Saxon同行都有很好的经验。

如果xml很大(> 50 MB)或查询很重(使用一些//来进行系统爬网),则需要一些延迟时间。但是它完全可行。

在更高版本中,msxml作为一个单元提供。在版本7中,您需要安装类型库:

  • 转到Project \ Import类型库
  • 选择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 :(得分:1)

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

它也可以轻松地与XPath一起使用。值得一试,我希望它也能帮到你。