![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с 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
)
);