Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];

Вниз

Ihtmldocumen2   Найти похожие ветки 

 
Opryshok   (2004-01-20 11:35) [0]

Доброе утро. мастера!

Вчера я задавал вопрос о парсинге ХТМЛ и дофорвардился до IHTMLDocument2.

Нашел следующий код для получения контента тэга <TITLE> в хтмл-файле:

var
IDoc : IHTMLDocument2;
Strl : TStringList;
strHTML : String;
v : Variant;
vTitle : string;
HTMLFileName: String;
begin
HTMLFileName := "d:\1.html";
Strl := TStringList.Create;
try
Strl.LoadFromFile(HTMLFileName);
Idoc:=CreateComObject(Class_HTMLDOcument) as IHTMLDocument2;
try
IDoc.designMode:="on";
while IDoc.readyState<>"complete" do
Application.ProcessMessages;
v:=VarArrayCreate([0,0],VarVariant);
strHTML := StringReplace(Strl.Text, #13#10, "<br>",
[rfReplaceAll]);
v[0]:= strHTML;
IDoc.write(PSafeArray(System.TVarData(v).VArray));
IDoc.designMode:="off";
while IDoc.readyState<>"complete" do
{!!!!!!!! ЗДЕСЬ ОШИБКА}
Application.ProcessMessages;
vTitle := iDoc.Title;
Label1.Caption := vTitle;
finally
IDoc := nil;
end;
finally
Strl.Free;
end;
end;

Так вот, если в хтмл-файле есть ошибка, то получаю

---------------------------
Error
---------------------------
A Runtime Error has occurred.
Do you wish to Debug?

Line: 1
Error: Syntax error
---------------------------
Yes No
---------------------------
столько раз, сколько ошибок в хтмлине. После всего этого получаю свой долгожданный тайтл.

ВОПРОС:
Можно избежать показывания этих месседжей? try ... except не помогает.

Спасибо за сотрудничество.


 
nikkie   (2004-01-20 15:22) [1]

половина кода просто булшит какой-то.

procedure ParseHTML(HTML: WideString);
var
Doc: IHTMLDocument2;
v: Variant;
begin
Doc := CreateComObject(Class_HTMLDocument) as IHTMLDocument2;
v := VarArrayCreate([0, 0], VarVariant);
v[0] := HTML;
Doc.write(PSafeArray(System.TVarData(v).VArray));

ShowMessage(Doc.title);
end;

заодно и subject не вылезает.


 
Opryshok   (2004-01-20 16:16) [2]

2 nikkie
Баааальшое спасибо за эезапл.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.115 c
4-2420
Вадим
2003-11-25 10:00
2004.02.02
Поверх всех окон


6-2259
h0use
2003-11-25 17:14
2004.02.02
Как реализовать чтоб сервре и клиент слушали порт?


1-2163
Sirakuz
2004-01-21 16:04
2004.02.02
Floating point IEEE format (80 bit) Как?


14-2366
ИМХО
2004-01-01 12:21
2004.02.02
USA: как живешь, Америка?


14-2285
Леприкон
2004-01-13 08:28
2004.02.02
WinRAR вырезал ошибочную часть AVI...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский