Как разобрать XML-файл в Delphi 7 - PullRequest
0 голосов
/ 17 декабря 2018

Доброе утро, мне нужно проверить XML на соответствие его XSD (синтаксический анализ);Я использую Delphi 7 на машине с Win7 Virtualbox.Я нашел примеры и объяснения в Интернете.Я выбрал этот пример, который мне показался простым и правильным:

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 с сообщением «строка интерфейса недопустима» (перевод итальянского).В пункте использования я вставил «OleCtnrs, ComObj, xmldom, XMLIntf, msxmldom, XMLDoc, MSXML2_TLB».Почему это исключение?Спасибо за ваш ответ.

1 Ответ

0 голосов
/ 17 декабря 2018

Какой фактический код ошибки?Если это 0x800401F3 (CO_E_CLASSSTRING), сообщение «Недопустимая строка класса» вместо «Недопустимая строка интерфейса».Я предполагаю, что MSXML4 не установлен на вашем компьютере.Он старый, вместо него используйте MSXML6.

...