Следующий код генерирует исключение «InvalidPointer» каждый раз, когда я пытаюсь получить доступ к корню документа с помощью XMLDocument.DocumentElement;
.Delphi: EInvalidPointer при попытке доступа к XMLDocument
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.
Есть ли у кого-нибудь идеи, что вызывает это? Заранее спасибо.
У меня есть догадка, что ответ станет очевидным, если вы сообщите нам, какой тип является переменной XMLDocument. –