![]() |
|
|
|
|
#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 страничек.
|