Ich versuche, den Wert eines Unterknotens namens links zu extrahieren, die in einem Knoten mit dem Namen Design ist, aber ein EInvalidPointer
auftritt.Wie extrahiert man einen Unterknotenwert aus XML-Text?
Ich verwende Delphi 2007 und dies ist der XML-Text:
<design>
<top>
0
</top>
<left>
5
</left>
<height>
177
</height>
<width>
130
</width>
</design>
Und das ist der Code:
uses
XMLDoc, XMLIntf...
var
Stream : TStream;
Doc : TXMLDocument;
Node : IXMLNode;
begin
Stream := TStringStream.Create(Memo1.Lines.Text);
try
Doc := TXMLDocument.Create(nil);
try
Doc.LoadFromStream(Stream);
Node := Doc.ChildNodes.FindNode('design');
if(Node <> nil) then
begin
Node := Node.ChildNodes.FindNode('left'); //EInvalidPointer here
if(Node <> nil) then
begin
//...
end;
end;
finally
Doc.Free;
end;
finally
Stream.Free;
end;
end;
Könnte jemand helfen zu verstehen mich, was ich falsch mache?
Warum TButton auf die gleiche Weise verwendet, verursacht keine Probleme? Ist das ein Glücksfall oder gibt es etwas, das TXMLDocument so verhält? – ExDev
@ExDev, Tbutton ist kein Interface-Objekt. – whosrdaddy
TXMLDocument ist speziell –