![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый день жители форума.
Хотелось бы сделать проверку на то, существует ли 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
|
|||
|
|||
|
Огромное спасибо
|