Изменим код, приведенный в качестве примера к предыдущей записи.
Вместо
v[0] := SLBody.Text;
Напишем:
v[0] := AddBASE(SLBody.Text,'http://adresa.yandex.ru/');
И отдельно процедурка, добавляющая тег BASE сразу после тега HEAD.
function AddBASE(PageText, BASEURL: String) : String;
var
Str : String;
begin
Str := '<base href="' + BASEURL + '">';
Result := StringReplace(PageText,'<head>',Str,[rfIgnoreCase]);
end;
Конечно, не совсем красиво, но зато работает, я проверила. DocElement.getAttribute('href',0) выдает ссылки в красивом виде:
Это, в принципе, то же самое, что и обрабатывать каждую ссылку, но телодвижений меньше.
Чтобы быть в курсе обновлений блога, можно подписаться на RSS.
___
После переноса фида на Google, счетчик совсем сошел с ума :) Адрес фида немного изменился, так что желательно изменить адрес подписки на http://feeds2.feedburner.com/parsing-lessons. А если еще не подписались на обновления, но тематика блога вам интересна — подписывайтесь! :)
Пытаюсь воспользоваться примером Delphi 5 ругается на "SLBody".
ОтветитьУдалитьПроверяй чего из этих строк забыл:
ОтветитьУдалитьSLBody : TStringList;
SLBody:=TStringList.Create;
TStringList в 5-й делфе должен быть.