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

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

работа с xml


cross ©   (2010-12-01 16:00:00) 

В xml-документе есть узелы вида:

<upd from_ver = "1" to_ver = "2" />

Нужно проверить, чтобы to_ver > from_ver. Какой подход будут более грамотный.

(1).


procedure xml_doc_analyze(Axml_doc: TXMLDocument);
begin
 with Axml_doc.DocumentElement do

   Assert(Attributes[C_XML_ATTR_TO_VER_NAME] >
     Attributes[C_XML_ATTR_FROM_VER_NAME]);

end;


(2).


procedure xml_doc_analyze(Axml_doc: IXMLDOMDocument);
begin

 Assert(Axml_doc.selectSingleNode('upd[@to_ver > @from_ver]') <> nil);

end;


Медвежонок Пятачок   (2010-12-01 16:24:00) [1]

хотя все зависит от целей проверки.
можно искать  первый.
можно найти все


Медвежонок Пятачок   (2010-12-01 16:21:00) [2]

разницы нет сколько там кривых узлов
найдутся все

А чего в конце грустный смайлик?
Так устроен поскаль
:)


cross   (2010-12-01 16:16:00) [3]

если в документе только один узел upd (по условию) - юзать selectSingleNode?


Andy BitOff   (2010-12-01 16:15:00) [4]


> Медвежонок Пятачок ©   (01.12.10 16:12) [1]

А чего в конце грустный смайлик?
;)


Медвежонок Пятачок   (2010-12-01 16:12:00) [5]

ShowMessage('В документе найдено узлов упд, у которых фромвер больше чем тувер '#13#10 +
IntToStr(
xdoc.selectNodes('//upd[@from_ver >= @to_ver]').length
)
);


Наверх

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