【问题标题】:How to parse xml file in delphi 7如何在delphi 7中解析xml文件
【发布时间】:2018-12-17 00:07:32
【问题描述】:

早上好, 我需要根据其 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”。 为什么会出现这个异常? 谢谢你的回答。

【问题讨论】:

  • 使用纯delphi库进行xml解析

标签: xml parsing delphi-7 xsd-validation msxml


【解决方案1】:

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

【讨论】:

  • 也许你是理性的。尝试安装 MSXML6。我想知道一些事情。
  • 您好,我已经安装了 MSXML6 SP1,运行相同的项目并出现相同的错误:“项目 ControlXml.exe 引发异常类 EOleSysError,消息为”“Stinga dell'interfaccia non valida”。进程已停止……”。是否有必要更改对 Xml 的引用? (6中的4在哪里改变)?谢谢
  • 是的,您需要将 MSXML2.XMLSchemaCache.4.0 更改为 MSXML2.XMLSchemaCache.6.0。
猜你喜欢
  • 2016-12-23
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多