Einzelnen Beitrag anzeigen

Henryk

Registriert seit: 8. Jan 2003
27 Beiträge
 
#7

Re: MSXML und Streams. Bin ich zu blöd?

  Alt 18. Feb 2007, 19:55
Hallo Achim,

was muss ich denn einbinden, damit mein Delphi D2005 den Typen IXMLDOMDocument2 kennt? Ich hab diesen Typen nirgendwo gefunden. Kopier ich dein Beispiel in meine WIN32-Anwendung und ersetze IXMLDOMDocument2 durch IXMLDOMDocument, bekomme ich trotzdem wieder den gleichen Fehler, dass IStream und TStreamAdapter nicht kompatibel sind.

Für IStream binde ich die Unit Ole2 ein.


Zitat von marabu:
Hallo Markus,

er meldet, dass TStreamAdapter und IStream nicht kompatibel sind.

So geht es:

Delphi-Quellcode:
procedure TDemoForm.ButtonClick(Sender: TObject);
var
  fs: TFileStream;
  dom: IXMLDOMDocument2;
begin
  dom := CoDomDocument.Create;
  dom.async := False;
  fs := TFileStream.Create(ParamStr(1), fmOpenRead or fmShareDenyWrite);
  if dom.load(TStreamAdapter.Create(fs, soReference) as IStream)
    then ShowMessage(dom.xml)
    else ShowMessage(dom.parseError.reason);
  fs.Free;
end;
Freundliche Grüße
Ich hatte zwischendurch auch weiter probiert und so geht es
Delphi-Quellcode:
...
  StringStream := TStringStream.Create('');
  XMLDoc := CoDOMDocument.Create();

  try
    StringStream.CopyFrom(Stream, Stream.Size);
    XMLDoc.loadXML(StringStream.DataString);
...
Nur dieses sinnlose StringStream.CopyFrom gefällt mir aus Effizienzgründen nicht.

Grüsse

Henryk
  Mit Zitat antworten Zitat