Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.04.2012, 15:05
Gudzik11 Gudzik11 вне форума
Начинающий
 
Регистрация: 27.09.2011
Сообщения: 158
Репутация: 10
По умолчанию ECXMLParser

Здравствуйте !
Парсил с помощью ECXMLParser
Код:
 procedure TForm1.Create(Sender: TObject); //Погода
   var
  s: string ;
    procedure DrawXMLItem(XMLItem: TXMLItem);
var
  i : Integer ;
 begin
   for i := 0 to XMLItem.SubItemCount-1 do
      DrawXMLItem(XMLItem.SubItems[i]);
   if Trim(XMLItem.Text)<>'' then  Memo1.Lines.Add(XMLItem.Name+' : '+XMLItem.Text);

 end;

    begin
      GetDir(0,s);                   //получить текущюю деректорию

      IdHTTP1.HandleRedirects:=True;
      Memo1.Clear();        // очищяем memo1
      Memo1.Text:= IdHTTP1.Get('http://sinoptik.ua/'+UTF8Encode('погода-харьков/10-дней')); // Загружаем страницу
      Memo1.Text:=Replace(Memo1.Text,'&deg;','');
      Memo1.Text:=Replace(Memo1.Text,'&nbsp;','');
      Memo1.Lines.SaveToFile(s+'\fff.htm'); // сохроняем
      Memo1.Clear;
      ECXMLParser1.LoadFromFile('fff.htm');
      Memo1.Lines.BeginUpdate;
      DrawXMLItem(ECXMLParser1.Root);
      Memo1.Text:= Utf8ToAnsi(Memo1.text);
      Memo1.Lines.EndUpdate;
     
       end;
получил в мемо такой текст
Код HTML:
span : 10 дней span : выбрать другой город span : скрыть span : скрыть a : Среда p : 11 p : апреля span : +5 div : мин. span : +9 div : макс. a : Четверг p : 12 p : апреля span : +3 div : мин. span : +15 div : макс. a : Пятница p : 13 p : апреля span : +7 div : мин. span : +17

подскажите пожалуйста как мне вытаскивать теперь значения
к примеру из span : вывести значение +15 в Label

Последний раз редактировалось Aristarh Dark, 11.04.2012 в 15:29.
Ответить с цитированием
  #2  
Старый 11.04.2012, 15:20
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Стрелка

намекаю:
Код:
Memo1.Lines.NameValueSeparator:=':';
Memo1.Lines.Values['span'];

почему не используешь XML-информер? хотя бы http://rp5.ru/xml/7375/00000/ru
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 11.04.2012, 15:49
Gudzik11 Gudzik11 вне форума
Начинающий
 
Регистрация: 27.09.2011
Сообщения: 158
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock

почему не используешь XML-информер? хотя бы http://rp5.ru/xml/7375/00000/ru

просто сайт понравился.

Код:
Memo1.Lines.NameValueSeparator:=':';
          Memo1.Lines.Values['span'];
а как в Label вывести
чёт не пойму как эти две строки прикрутить .
Ответить с цитированием
  #4  
Старый 11.04.2012, 16:28
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ой, не, через NameValueSeparator/Values не получится - ключи то повторяются. можно просто из строки удалить не нужное:
Код:
Label1.Caption:=StringReplace(Memo1.Lines[14], 'span', '', [rfReplaceAll, rfIgnoreCase]);

а на счет информера подумай, можно кое-что интересное получить. к примеру для мобильника когда-то писал "Weather Schedule - Расписание Погоды"



__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 11.04.2012, 16:59
Gudzik11 Gudzik11 вне форума
Начинающий
 
Регистрация: 27.09.2011
Сообщения: 158
Репутация: 10
По умолчанию

c xml уже писал отсюда брал
http://xml.weather.co.ua/1.2/forecas...d=yoursite_com

конечно намного проще было . ну что то как то коряво вышло.

Подскажи а можно в ECXMLParser загнать сайт? Чтоб не сохранять в документ, потом открывать ECXMLParser1.LoadFromFile('fff.htm');
а сразу как в IdHTTP1.Get('http://sinoptik.ua/'+UTF8Encode('погода-харьков/10-дней'));

Последний раз редактировалось Gudzik11, 11.04.2012 в 17:05.
Ответить с цитированием
  #6  
Старый 12.04.2012, 08:59
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

не знаю я что такое ECXMLParser и гуглить не буду - мне вполне хватает стандартных IXMLHttpRequest и IXMLDOMDocument из msxml.pas для работы с XML. и IHTML* из MSHTML.pas для обработки html страничек.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:30.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025