Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XML ответ от сервера 
:(
    Опции темы
MrDmitry
Дата 5.9.2011, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Всем привет написал небольшую функцию которая отсылает на определенный url адрес post запрос, в ответ получает xml



Код

<?xml version="1.0" encoding="UTF-8"?>
<xml_data><action>3</action><name>1</name><surname>1</surname><patronymic>1</patronymic><birth>01.01.1901</birth></xml_data>



 и выводит полученные данные в таблицу. все делается при помощи компонента IdHTTP из ветки indy client.



Код

function TMains.query(action, value1, value2:string):string;
var
 data: TIdMultiPartFormDataStream;
 n:integer;
 xml1:string;
begin
 data := TIdMultiPartFormDataStream.Create;
  try
     res:=IdHTTP1.get('http://url.ru/proc.php?action='+action+'&session_key='+value1+'&id='+value2);
     n:=Pos('<name>', res);
     xml1:=Copy(res, n+6, length(res));
     n:=Pos('</name>', xml1);
     name_s:=Copy(xml1, 1, n-1);
     n:=Pos('<surname>', res);
     xml1:=Copy(res, n+9, length(res));
     n:=Pos('</surname>', xml1);
     surname:=Copy(xml1, 1, n-1);
     n:=Pos('<patronymic>', res);
     xml1:=Copy(res, n+12, length(res));
     n:=Pos('</patronymic>', xml1);
     patronamic:=Copy(xml1, 1, n-1);
     n:=Pos('<birth>', res);
     xml1:=Copy(res, n+7, length(res));
     n:=Pos('</birth>', xml1);
     birth:=Copy(xml1, 1, n-1);
  finally
    data.Free;
  end;
end;


Ну и соотвественно вызов функции 

Код

query(3, ключь ссесии, номер пользователя)



Функция выполняется верно и выводит верные данные, но вопрос. Правильно ли я сделал что брал полностью весь полученные код xml разбивал его на строки и получал нужные данные? Или можно как то подругому получать ответ?


Это сообщение отредактировал(а) MrDmitry - 5.9.2011, 11:33
PM MAIL   Вверх
AndreyIQ
Дата 5.9.2011, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 5.2.2007

Репутация: нет
Всего: 8



Я обычно для чтения xml-документов использую TXMLDocument с вкладки Internet.
PM MAIL   Вверх
14SatanA88
Дата 5.9.2011, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: 2
Всего: 5



Цитата(AndreyIQ @  5.9.2011,  11:38 Найти цитируемый пост)
Я обычно для чтения xml-документов использую TXMLDocument с вкладки Internet.

+

у этого компонента есть все, чтобы удобно парсить xml.
коротко о главном:

1. загрузка
Код

      MainForm.XMLDocument1.LoadFromFile('http://domain.name/file.xml');
      MainForm.XMLDocument1.Active:=true;


2. получение данных
Код

name:=MainForm.XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes[1].Text;


это в самом общем понятии. а так все есть в справке.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.