как я могу добавить версию и кодировку в XML-файл, используя TXMLDocument - PullRequest
5 голосов
/ 19 марта 2011

Я хочу добавить версию и кодировку в XML-файл, созданный с помощью TXMLDocument component

<?xml version="1.0" encoding="utf-8"?>

в настоящее время я делаю это

XmlDoc   :=TXMLDocument.Create(nil);
XmlDoc.Version:='1.0';
XMLDoc.Encoding:='utf-8';

но я получаю нарушение доступа в этой строке

XmlDoc.Version:='1.0';

как я могу добавить версию и кодировку?

Ответы [ 2 ]

17 голосов
/ 19 марта 2011

Вы должны установить для свойства Active значение True, прежде чем изменять свойства документа XML.

XmlDoc   :=TXMLDocument.Create(nil);
XmlDoc.Active:=True;
XmlDoc.Version:='1.0';
XMLDoc.Encoding:='utf-8';
1 голос
/ 16 июня 2012

Если вы создаете TXMLDocument с владельцем nil, новый экземпляр использует подсчет ссылок для поддержания его времени жизни, поэтому вы ДОЛЖНЫ назначить его переменной IXMLDocument для правильного ведения счетчика ссылок, иначе экземпляр будетбыть освобожден преждевременно.Не используйте переменную TXMLDocument в этой ситуации.Это задокументированное поведение, которое будет учитывать ваш AV.При работе с динамическими экземплярами TXMLDocument лучше использовать вместо них функции NewXMLDocument() и LoadXML...().

...