Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Добавление узлов в XML


Автор: Dmitry1987 30.5.2013, 10:38
не получается создать такую структуру XMLDOMDocument'а:

Код

<files>
<file name="" size="" />
</files>


Пытаюсь так:

Код

var
  doc: IXMLDOMDocument;
  node1: IXMLDOMElement;
begin
  doc := CoDOMDocument.Create;
  node1 := doc.createElement('upload_files');
  doc.documentElement.appendChild(node2); // <- Access Violation

  ShowMessage(doc.text);
end;

Автор: Poseidon 30.5.2013, 10:59
Я могу и ошибаться, т.к. с этими классами не приходилось встречаться, но на глаз сразу бросается то, что doc обьявлено как IXMLDOMDocument, а создается как CoDOMDocument. Отсюда вопрос, documentElement - это чей метод?

Добавлено через 1 минуту и 48 секунд
А вот и еще ошибка. В 7й строчке обращение к node2. В 6й - присвоение node1

Автор: Akella 30.5.2013, 13:01
я бы не советовал использовать встроенный XMLDOMDocument, глючный он
Лучше DiXML или NativeXML, или что-то другое

Автор: MetalFan 30.5.2013, 17:14
Цитата(Akella @  30.5.2013,  13:01 Найти цитируемый пост)
я бы не советовал использовать встроенный XMLDOMDocument, глючный он

Странно, сколько пользуюсь, проблем особых не наблюдаю)

А ошибку правильно подметили уже, объявлена и создается node1, а добавлять пытаемся node2... как это вообще скомпилилось?

Автор: Akella 30.5.2013, 19:01
А я один раз пытался использовать, проблема была на ровном месте, как говорится. Мне подсказали, что нужно выкинуть стандартный и взять другой.

Добавлено через 1 минуту и 7 секунд
ЕМНИП, то LoadFromFile выдавал AV.

Автор: Illusion Dolphin 30.5.2013, 21:18
С XMLDOMDocument есть одна особенность, я раз столкнулся, когда приложение падало при закрытии без видимых причин. Выяснилось, что для работы с XMLDOMDocument обязательным!!! (косвенно написано в MSDN) является оконный цикл обработки сообщений, без которого работа с документом может быть нестабильная. 

Автор: Akella 31.5.2013, 08:53
Ну вот. А для DiXML ненуна smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)