Добрый день.
Пишу приложение, в которое засылаются данные в виде xml. Есть ли в Delphi специальные... ну не знаю, инструменты, компоненты, функции, которые помогают с этим разобраться? Или придется с ним воевать вручную?
xml + delphi
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
- Oleg_Rus
- Сообщения: 335
- Зарегистрирован: 16 окт 2006, 09:56
- Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
- Контактная информация:
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
-
- Сообщения: 526
- Зарегистрирован: 03 янв 2009, 23:17
- Откуда: Voronezh
- Контактная информация:
Не разобрались?
Чтобы получать данные можно создать слушающий сокет.
Данные ожидать лучше в отдельном потоке, особенно если будете работать с сокетами в блокирующем режиме.
(если во время ожидания данных ничего делать не надо, то дополнительный поток конечно можно не делать).
Имеет смысл так же получать сначала длину данных, а потом уже сами данные.
Так Вы сможете определить, что все данные полученны (поскольку данные могут идти частями) и приступить к обработке данных.
После получения данных, чтобы облегчить себе жизнь при работе с XML, можно использовать компонент XMLDocument с вкладки Internet (он входит в поставку Delphi 7). Можно загрузить полученные данные в свойство XMLDocument.XML.Text. И затем если при переводе свойства XMLDocument.Active в True возникнет исключение - то скорее всего загруженный текст не является валидным XML.
Принцип работы аналогичен работе с деревом, если Вы работали с HTML-структурой в js или с TreeView в Delphi то проблем не возникнет.
Вот вкратце:
- нод = узел;
- есть текущий нод (sibling);
- у него может быть нод-родитель (parent);
- у него могут быть ноды-дети (child);
Можно переходить от узла к узлу в любом направлении.
Главный нод - XMLDocument.Document (если содержится нод с кодировкой, то XMLDocument.Document.ChildNodes[1] ).
Обратите внимание, что типы нодов бывают разные (гляньте TNodeType).
И нод не соответствует тегу в документе. Т.е. один тег может быть представлен несколькими нодами.
Чтобы получать данные можно создать слушающий сокет.
Данные ожидать лучше в отдельном потоке, особенно если будете работать с сокетами в блокирующем режиме.
(если во время ожидания данных ничего делать не надо, то дополнительный поток конечно можно не делать).
Имеет смысл так же получать сначала длину данных, а потом уже сами данные.
Так Вы сможете определить, что все данные полученны (поскольку данные могут идти частями) и приступить к обработке данных.
После получения данных, чтобы облегчить себе жизнь при работе с XML, можно использовать компонент XMLDocument с вкладки Internet (он входит в поставку Delphi 7). Можно загрузить полученные данные в свойство XMLDocument.XML.Text. И затем если при переводе свойства XMLDocument.Active в True возникнет исключение - то скорее всего загруженный текст не является валидным XML.
Принцип работы аналогичен работе с деревом, если Вы работали с HTML-структурой в js или с TreeView в Delphi то проблем не возникнет.
Вот вкратце:
- нод = узел;
- есть текущий нод (sibling);
- у него может быть нод-родитель (parent);
- у него могут быть ноды-дети (child);
Можно переходить от узла к узлу в любом направлении.
Главный нод - XMLDocument.Document (если содержится нод с кодировкой, то XMLDocument.Document.ChildNodes[1] ).
Обратите внимание, что типы нодов бывают разные (гляньте TNodeType).
И нод не соответствует тегу в документе. Т.е. один тег может быть представлен несколькими нодами.
Нет религии выше истины
приватизация квартир военным
приватизация военных квартир
приватизация жилья военным
приватизация славянка
приватизация осиновая роща
департамент жилищного обеспечения
западное джо
департамент жилищного обеспечения мо рф
ДЖО МО РФ
ЗАПАДНОЕ РУЖО
споры с командиром части
исключение из списков части
военная ипотека
жилье военным
квартиры для военных
участники военной ипотеки
задать вопрос юристу
юрист
адвокат
военный юрист
военные юристы
военный адвокат
юрист онлайн
военный юрист онлайн
приватизация военных квартир
приватизация жилья военным
приватизация славянка
приватизация осиновая роща
департамент жилищного обеспечения
западное джо
департамент жилищного обеспечения мо рф
ДЖО МО РФ
ЗАПАДНОЕ РУЖО
споры с командиром части
исключение из списков части
военная ипотека
жилье военным
квартиры для военных
участники военной ипотеки
задать вопрос юристу
юрист
адвокат
военный юрист
военные юристы
военный адвокат
юрист онлайн
военный юрист онлайн