Hallo,
ich habe ein Problem beim Einlesen vom
XML Daten aus einem Stream.
Lege ich die XMLDocument Komponente auf eine Form ("XMLDoc") lassen sich die Inhalte problemlos auslesen:
Delphi-Quellcode:
function LoadWebData(xmlResponse : TMemoryStream) : boolean;
var
StartItemNode: IXMLNode;
begin
Result := true;
try
XMLDoc.LoadFromStream(xmlResponse);
except;
Result := false;
exit;
end;
XMLDoc.Active := True;
try
StartItemNode := XMLDoc.DocumentElement.ChildNodes.FindNode('response') ;
except
end;
end;
Möchte ich die Funktionalität jedoch auslagern und das XMLDocument zu Laufzeit erzeugen, dann wird beim Abfragen der Struktur eine
Exception ausgeworfen.
Delphi-Quellcode:
function LoadWebData(xmlResponse : TMemoryStream) : boolean;
var
XMLDoc : TXMLDocument;
StartItemNode: IXMLNode;
begin
Result := true;
XMLDoc := TXMLDocument.Create(
NIL);
try
XMLDoc.DOMVendor := DOMVendors.Find('
Omni XML');
XMLDoc.Options := [doAttrNull,doAutoPrefix,doNamespaceDecl];
try
XMLDoc.LoadFromStream(xmlResponse);
except;
Result := false;
exit;
end;
XMLDoc.Active := True;
try
StartItemNode := XMLDoc.DocumentElement.ChildNodes.FindNode('
response') ;
// <= Exception
except
end;
// ....
finally
XMLDoc.Active := false;
XMLDoc :=
NIL;
end;
end;
Was mache ich hier falsch? Habe ich vergessen, eine Eigenschaft zu setzen?
Vielen Dank, für jeden Hinweis.