首页 > 解决方案 > 如何在delphi 7中解析xml文件

问题描述

早上好,我需要根据其 XSD(解析)验证 XML;我在 Win7 Virtualbox 机器上使用 Delphi 7。我在互联网上找到了例子和解释。我选择了这个看起来简单而恰当的例子:

procedure TForm1.Button1Click(Sender: TObject);
var XML, XSDL: Variant;
begin
  XSDL := CreateOLEObject('MSXML2.XMLSchemaCache.4.0');
  XSDL.validateOnLoad := True;
  XSDL.add('','C:\Lavoro\Fattura_Elettronica_PRIVATI\Schema_del_file_xml_FatturaPA_versione_1.2.1.xsd');
  ShowMessage('Schema Loaded');
  XML := CreateOLEObject('MSXML2.DOMDocument.4.0');
  XML.validateOnParse := True;
  XML.resolveExternals := True;
  XML.schemas := XSDL;
  XML.load(Edit1.Text);
  ShowMessage(XML.parseError.reason);
end;

但是“CreateOLEObject”函数会引发异常类 EOleSysError,并带有消息“接口字符串无效”(由意大利语翻译)。在 uses 子句中,我插入了“OleCtnrs、ComObj、xmldom、XMLIntf、msxmldom、XMLDoc、MSXML2_TLB”。为什么会出现这个异常?感谢您的回答。

标签: xmlparsingdelphi-7xsd-validationmsxml

解决方案


实际的错误代码是什么?如果它是 0x800401F3 (CO_E_CLASSSTRING),则消息是“无效的类字符串”,而不是“接口字符串无效”。我的猜测是您的计算机上没有安装 MSXML4。它很旧,请改用 MSXML6。


推荐阅读