Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.05.22;
Скачать: CL | DM;

Вниз

очистка IXMLDocument   Найти похожие ветки 

 
cross   (2011-02-10 16:19) [0]

приложение загужает 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;


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

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


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

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

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


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

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


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

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


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

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

приложение загружает 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:45) [6]

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

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

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


 
Dennis I. Komarov ©   (2011-02-10 16:50) [7]

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


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

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


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

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

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


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

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


 
Dennis I. Komarov ©   (2011-02-10 16:57) [11]

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



Страницы: 1 вся ветка

Текущий архив: 2011.05.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
15-1296909375
Дмитрий
2011-02-05 15:36
2011.05.22
Проблема с сетью


2-1297808037
TempUser142
2011-02-16 01:13
2011.05.22
Вызов InternetSetStatusCallback из TThread


2-1297686311
Ghost del vonte
2011-02-14 15:25
2011.05.22
Определение Left и Top у ячейки в DrawGrid


1-1254548466
newbart
2009-10-03 09:41
2011.05.22
Меню для TMemo, TEdit


15-1297231514
Volodq
2011-02-09 09:05
2011.05.22
Возмещение морального вреда!