Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

очистка IXMLDocument


cross ©   (2011-02-10 16:19:00) 

приложение загужает xml-файл. если xml-файл удалось загрузить, необходимо очистить все содержимое root-узла, если загрузить файл не удалось нужно сформировать xml-файл (добавить пустой root-узел). Как правильно сделать?

Мой вариант:

procedure TForm1.FormCreate(Sender: TObject);
var
 I: Integer;
 WorkXML: IXMLDOMDocument;
begin
 WorkXML := CoDOMDocument.Create;
 if WorkXML.load('D:\test.xml') then
   with WorkXML.documentElement do
     for I := childNodes.length - 1 downto 0 do
       removeChild(childNodes[I])
 else
   WorkXML.documentElement := WorkXML.createElement('zzz');

 ShowMessage(WorkXML.xml);

end;


Dennis I. Komarov   (2011-02-10 16:57:00) [1]

тогда если не будет, не прибегай жаловаться...


Dennis I. Komarov   (2011-02-10 16:56:00) [2]

я понял что если xml "правильный", т.е. он внутри xml да еще и некой правильной структуры, то он его не трогает, во всех других противных - надо "типа очистить"...


cross   (2011-02-10 16:55:00) [3]

все ясно, спасибо.

последнее, что хочу уточнить, для чего в сроке указывать <?xml version="1.0"?>?, без него вроде как работает


Медвежонок ХМЛ   (2011-02-10 16:51:00) [4]

//if not({1} and {1.1}) then
загружаем "пустой шаблон"


Dennis I. Komarov   (2011-02-10 16:50:00) [5]

if not({1} and {1.1}) then загружаем "пустой шаблон"


Медвежонок ХМЛ   (2011-02-10 16:45:00) [6]

если xml-файл удалось загрузить, необходимо очиститьвсе содержимое root-узла, если загрузить файл не удалосьнужно сформировать xml-файл (добавить пустой root-узел).

ИТОГО:
в обоих случаяху нас документ с пустым рутом без чайлдов.

зачем там что-то чистить,
если можно сделать loadxml('<?xml version="1.0"?><root/>');


cross   (2011-02-10 16:42:00) [7]

объясню более подробно задачу:

приложение загружает xml-файл (WorkXML.load: Boolean):

1. если True:

     1.1 анализ содержимого xml-файла (analyze: Boolean)

           1.1.1 если True: - оставляем все как есть
           1.1.2 если False: - очищаем xml-файл оставив только root-узел + формируем содержимое

2. если False

    2.1 очищаем xml-файл оставив только root-узел + формируем содержимое.

Как грамотно реализовать очистку и заполнение новым сожержимым root-узла?


Медвежонок ХМЛ   (2011-02-10 16:30:00) [8]

строковая константа, в которой текст документа с рутом без чайлдов.


cross   (2011-02-10 16:29:00) [9]

не понял, что имеете ввиду, можно подробнее объяснить, что за константа и что за шаблон.


Медвежонок ХМЛ   (2011-02-10 16:27:00) [10]

если xml-файл удалось загрузить, необходимо очистить все содержимое root-узла, если загрузить файл не удалось нужно сформировать xml-файл (добавить пустой root-узел). Как правильно сделать?

в таком извращенном случае надо сразу грузить документ с пустым рутом (без чайлдов)


Медвежонок ХМЛ   (2011-02-10 16:25:00) [11]

LoadXML + константа-шаблон


Наверх

Титульная страница Поиск, карта сайта Написать письмо