|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Приверить существует ли xml-документ по url-адресу
Добрый день жители форума.
Хотелось бы сделать проверку на то, существует ли xml-лента по URL-адресу(переменная host), до того как программа выпадет в ошибку. Помогите с реализацией. Код ниже работает, но проверки нет. Код:
var host:string; XMLHTTP: Variant; xmldomdocument: IXMLDOMDocument; xmldomnodelist: IXMLDOMNodeList; code: XMLHTTP:=CreateOleObject('Microsoft .XMLHTTP'); XMLHTTP.open('GET',host, False); XMLHTTP.send(''); if XMLHTTP.status=200 then begin xmldomdocument:=(IUnknown(XMLHTTP.r esponseXML) as IXMLDOMDocument); xmldomnodelist:=xmldomdocument.getE lementsByTagName('title'); for i:=0 to 11 do if xmldomnodelist[i].parentNode.nodeName='item' then Listbox2.Items.Add(xmldomnodelist.i tem[i].text); end; Последний раз редактировалось Admin, 02.05.2011 в 19:36. |
#2
|
||||
|
||||
IXMLHTTPRequest все-равно что загружать.
Цитата:
http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx а почему асинхронный режим не используешь? Код:
procedure TFormMain.Get; begin try XMLHTTP.open('GET', 'http://www.delphisources.ru/forum/external_mod.php?type=RSS2', True); XMLHTTP.send(''); except end; Timer.Enabled:=True; end; procedure TFormMain.TimerTimer(Sender: TObject); begin if XMLHTTP.readyState=4 then begin Timer.Enabled:=False; if XMLHTTP.status=200 then begin http://data.cod.ru/99571 Пишу программы за еду. __________________ |
#3
|
|||
|
|||
Так и не понял как сделать проверку
Пишу:
PHP код:
Не срабатывает, в чем проблема и каким образом все-таки реализовать проверку. |
#4
|
||||
|
||||
процедура GetRSSLinks возвращает в AStrings все ленты для URL:
Код:
uses msxml, ComObj, procedure GetRSSLinks(URL: String; AStrings: TStrings); var XMLHTTP: IXMLHttpRequest; response: String; i: Integer; s: String; begin AStrings.Clear; XMLHTTP:=CreateOleObject('Microsoft.XMLHTTP') as IXMLHttpRequest; try XMLHTTP.open('GET', URL, False, '', ''); XMLHTTP.send(''); if XMLHTTP.status=200 then begin response:=XMLHTTP.responseText; i:=Pos('<link', response); while i>0 do begin s:=Copy(response, i, Length(response)); response:=Copy(response, i+5, Length(response)); i:=Pos('>', s); if i>0 then begin s:=Copy(s, 1, i); if Pos('application/rss+xml', s)>0 then begin i:=Pos('href="', s); if i>0 then begin s:=Copy(s, i+6, Length(s)); i:=Pos('"', s); if i>0 then AStrings.Add(Copy(s, 1, i-1)); end; end; end; i:=Pos('<link', response); end; end; finally XMLHTTP:=nil; end; end; использование: Код:
type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); procedure TForm1.Button1Click(Sender: TObject); begin GetRSSLinks('http://www.delphisources.ru/forum/', Memo1.Lines); // GetRSSLinks('http://www.nwcod.com/', Memo1.Lines); end; Пишу программы за еду. __________________ |
#5
|
|||
|
|||
Огромное спасибо
|