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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как считать XML, Информер погоды 
:(
    Опции темы
mrVerus
Дата 23.4.2009, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я плохо знаю XML побывал стандартные примеры не вышло как считать данные из этого файла 28825_1.xml1, напишите пожайлуста пример
как можно считать параметры умн не получается 

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  28825_1.xml1 0,00 Kb
PM MAIL   Вверх
Лапоть
Дата 23.4.2009, 10:43 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Никак. Он же пустой!
PM MAIL   Вверх
mrVerus
Дата 24.4.2009, 05:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Дико изаиняюсь

Присоединённый файл ( Кол-во скачиваний: 21 )
Присоединённый файл  28825_1.rar 0,50 Kb
PM MAIL   Вверх
Лапоть
Дата 24.4.2009, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Простой, как лапоть, XML... Если честно, то даже не интересно его разматывать! 
Цитата(mrVerus @  23.4.2009,  09:58 Найти цитируемый пост)
стандартные примеры не вышло как считать данные
Код покажи, тогда хоть можно будет твои ошибки править smile 

PM MAIL   Вверх
mrVerus
Дата 24.4.2009, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



XMLDocument1.LoadFromFile('c:\28825_1.xml');
XMLDocument1.Active := true;
// Здесь все получается 
Edit2.Text := VarToStr(XMLDocument1.DocumentElement.ChildNodes['REPORT'].Attributes['type']);
// А вот здесь edit3 получает пустую строку
Edit3.Text := VarToStr(XMLDocument1.DocumentElement.ChildNodes['TOWN'].Attributes['index']);
Edit4.Text := VarToStr(XMLDocument1.DocumentElement.ChildNodes['FORECAST'].Attributes['day']);
XMLDocument1.Active := false;

Как получить все параметры7
Получилось ли у Вас smile 7
PM MAIL   Вверх
pseud
Дата 24.4.2009, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

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



Код

procedure TForm1.Button1Click(Sender: TObject);
var
  nodeREPORT: IXMLNode;
  nodeTOWN: IXMLNode;
  nodeFORECAST: IXMLNode;
begin
  if not OpenDialog1.Execute then
    Exit;

  XMLDocument1.LoadFromFile(OpenDialog1.FileName);
  try
    XMLDocument1.Active := True;

    nodeREPORT := XMLDocument1.DocumentElement.ChildNodes['REPORT'];
    Edit1.Text := nodeREPORT.Attributes['type'];

    nodeTOWN := nodeREPORT.ChildNodes['TOWN'];
    Edit2.Text := nodeTOWN.Attributes['index'];
    Edit3.Text := nodeTOWN.Attributes['sname'];
    Edit4.Text := nodeTOWN.Attributes['latitude'];
    Edit5.Text := nodeTOWN.Attributes['longitude'];

    nodeFORECAST := nodeTOWN.ChildNodes['FORECAST'];
    Edit6.Text := nodeFORECAST.Attributes['day'];
  finally
    XMLDocument1.Active := false;
  end;
end;



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Лапоть
Дата 24.4.2009, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Корень - это MMWEATHER
Узел первого уровня - REPORT
Узел второго уровня TOWN, а под ним - коллекция узлов FORECAST с атрибутами и своими детишками.

XMLDocument1.DocumentElement - это твой корень, поэтому данные для его дитёнка REPORT ты считал. А вот дитёнка с именем TOWN у корня НЕТ!

Код

var
  root, node1, node2, node3, node4 : IXMLNode;
  i : integer;
begin
  root := XMLDocument1.DocumentElement;
  node1 := root.ChildNodes.FindNode('REPORT');
  // ну а уж данные сам вытаскивай !
  node2 := node1.ChildNodes.FindNode('TOWN');
  for i := 0 to node2.ChildNodes.Count - 1 do begin
    node3 := node2.ChildNodes.Nodes[i];
    // а для коллекции его детишек - node4. Сам напиши!
  end;
end;

PS - а почему файл так коряво отформатирован? Я его через AkelPad смотрел...



Это сообщение отредактировал(а) Лапоть - 24.4.2009, 11:49
PM MAIL   Вверх
mrVerus
Дата 24.4.2009, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Огромное спасибо
PM MAIL   Вверх
Aleksandr2677
Дата 5.2.2013, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день, подниму старую тему.
Помогите продолжить код который описан выше. Я в этом деле новичёк, стаж меньше недели, так  что не пинайте сильно.
Не могу до конца распарсить xml:   informer.gismeteo.ru
Дошёл только до FORECAST а значения   PHENOMENA  PRESSURE   TEMPERATURE   WIND   RELWET   HEAT вывести не могу.
Код

procedure TForm1.Button2Click(Sender: TObject);
begin


    XMLDocument1.LoadFromFile('http://informer.gismeteo.ru/xml/27612_1.xml');

     try
      XMLDocument1.Active := True;

       nodeREPORT := XMLDocument1.DocumentElement.ChildNodes['REPORT'];
    Edit1.Text := nodeREPORT.Attributes['type'];
    nodeTOWN := nodeREPORT.ChildNodes['TOWN'];
    Edit2.Text := nodeTOWN.Attributes['index'];
    Edit3.Text := nodeTOWN.Attributes['sname'];
    Edit4.Text := nodeTOWN.Attributes['latitude'];
    Edit5.Text := nodeTOWN.Attributes['longitude'];
    nodeFORECAST := nodeTOWN.ChildNodes['FORECAST'];
    Edit6.Text := nodeFORECAST.Attributes['day'];
    Edit7.Text := nodeFORECAST.Attributes['month'];
    Edit8.Text := nodeFORECAST.Attributes['year'];
    Edit9.Text := nodeFORECAST.Attributes['hour'];
    Edit10.Text := nodeFORECAST.Attributes['tod'];
    Edit11.Text := nodeFORECAST.Attributes['predict'];
    Edit12.Text := nodeFORECAST.Attributes['weekday'];

     //Дальше не знаю что писать, тыкал наугад . Как добраться до
     // PHENOMENA  PRESSURE   TEMPERATURE   WIND   RELWET   HEAT  не знаю((

    Edit13.Text := VarToStr(XMLDocument1.DocumentElement.ChildNodes['PHENOMENA'].Attributes['cloudiness']);
    Edit14.Text := VarToStr(XMLDocument1.DocumentElement.ChildNodes['PHENOMENA'].Attributes['precipitation']);


     finally
    XMLDocument1.Active := false;


 end;
end;



Выше конечно описан способ но я его раскурить немогу((
PM MAIL   Вверх
Aleksandr2677
Дата 8.2.2013, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Плиз. Помогите с програмкой. Я раньше софт для ПК не писал. А тут приспичило сделать приспособу для своего телеграфа, которая-бы выводила азбукой морзе прогноз погоды.  Я уже практически во всём разобрался, остался парсинг. 



Присоединённый файл ( Кол-во скачиваний: 17 )
Присоединённый файл  2966821608_3.jpg 85,64 Kb
PM MAIL   Вверх
Aleksandr2677
Дата 9.2.2013, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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

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

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


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

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


 




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


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

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