![]() |
|
#1
|
|||
|
|||
![]() Здравствуйте !
Парсил с помощью 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,'°',''); Memo1.Text:=Replace(Memo1.Text,' ',''); 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 : вывести значение +15 в Label Последний раз редактировалось Aristarh Dark, 11.04.2012 в 15:29. |
#2
|
||||
|
||||
![]() намекаю:
Код:
Memo1.Lines.NameValueSeparator:=':'; Memo1.Lines.Values['span']; почему не используешь XML-информер? хотя бы http://rp5.ru/xml/7375/00000/ru Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() Цитата:
просто сайт понравился. Код:
Memo1.Lines.NameValueSeparator:=':'; Memo1.Lines.Values['span']; чёт не пойму как эти две строки прикрутить . |
#4
|
||||
|
||||
![]() ой, не, через NameValueSeparator/Values не получится - ключи то повторяются. можно просто из строки удалить не нужное:
Код:
Label1.Caption:=StringReplace(Memo1.Lines[14], 'span', '', [rfReplaceAll, rfIgnoreCase]); а на счет информера подумай, можно кое-что интересное получить. к примеру для мобильника когда-то писал "Weather Schedule - Расписание Погоды" ![]() ![]() ![]() ![]() Пишу программы за еду. __________________ |
#5
|
|||
|
|||
![]() 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
|
||||
|
||||
![]() не знаю я что такое ECXMLParser и гуглить не буду - мне вполне хватает стандартных IXMLHttpRequest и IXMLDOMDocument из msxml.pas для работы с XML. и IHTML* из MSHTML.pas для обработки html страничек.
Пишу программы за еду. __________________ |