Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2010, 14:07   #1
NieL
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 116
По умолчанию сформировать xml-файл на основе другого xml-файла

С сервера приходят пакеты обновления, каждый содержит заголовочный файл (файл описания обновления) и diff-файлы (файлы различий)

Пример заголовочного файла:

Код:
<upd from_ver = "1" to_ver = "2">
	<file name = "ws_client.exe" size = "2549" crc_32 = "C1A9F7A1" dt_name = 	"ws_client.diff" dt_size = "129" dt_crc_32 = "A05F0F72" />
	<file name = "ws_svr.exe" size = "2719" crc_32 = "7B17B240" dt_name = "ws_svr.diff" 	dt_size = "142" dt_crc_32 = "43BDCD7B" />
	<file name = "updr.exe" size = "1047" crc_32 = "781E6643" dt_name = "updr.diff" 	dt_size = "71" dt_crc_32 = "D7A01C75" />
</upd>
Задача: сформировать xml-файл список описаний обновлений (результирующий), исключив из него атрибуты с описанием diff-фалов. т.е.

Код:
<upds>
	<upd from_ver = "1" to_ver = "2">
		<file name = "ws_client.exe" size = "2549" crc_32 = "C1A9F7A1" />
		<file name = "ws_svr.exe" size = "2719" crc_32 = "7B17B240" />
		<file name = "updr.exe" size = "1047" crc_32 = "781E6643" />	
	</>
</upds>
Как грамотно сделать копирование веток с необходимыми атрибутам? Пока что думаю сделать массив имен необходимых атрибутов, дальше в цикле проверять каждый атрибут каждой ветки и принимать решение копировать/не копировать в результирующий. Что посоветуете? Может можно как то сделать через XPath?
NieL вне форума Ответить с цитированием
Старый 21.12.2010, 15:27   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

в Delphi 7 есть компонент XMLDocument (предполагаю что и в более новых версиях он есть). С ним достаточно удобно работать с xml-файлами. Закачал в него, удалил ненужное и сохранил куда нужно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.12.2010, 15:49   #3
NieL
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 116
По умолчанию

компонет XMLDocument полное барахло, глючный, тормозной, нет возможности использовать XPath. Я работаю через IXMLDOMDocument. Собственно сделал рабочий вариант, касаемо своей задачи в рамках двух циклов, хотелось бы сделать все через XPath без использования циклов.
NieL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генерация XML файла dekameron PHP 1 31.07.2010 22:17
Обработка XML-файла Driver_09 Помощь студентам 3 25.05.2010 16:38
парсер XML, не видит XML тэги supercelt PHP 3 02.11.2009 19:18
Создать файл с данными на основе другого файла. Паскаль)) ТРОЯН=) Помощь студентам 13 16.04.2009 18:51