次のコードは、ドキュメントのルートにアクセスしようとするたびに「InvalidPointer」例外をスローしますXMLDocument.DocumentElement;
。
begin
XMLDocument := TXMLDocument.Create(nil); // nil since we don't need an owner
AStream := TStream.Create; // stream for output as string
XMLDocument.loadFromXML(xml);// load string
if NOT (XMLDocument.IsEmptyDoc) then
begin
XMLDocument.Active := true; // actually automatically done by 'loadFromXML'
// get document root
HeadNode := XMLDocument.DocumentElement;
// add <id>-element, set ID as text
idNode := HeadNode.AddChild(XML_ID_PLAIN);
idNode.Text := id;
// ...
end;
end;
に渡された文字列 "xml"loadFromXML(string)
は有効な XML ですが、XMLDocument のプロパティ "XML" と "DOMDocument" は常にnil
です。オブジェクト自体もその "IsEmptyDoc" プロパティもそうではありません。Delphi のバージョンは 2007 のままです。
誰がこれを引き起こしているのか考えていますか? 前もって感謝します。