程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 如何獲取本地HTML文件的標題,超級鏈接

如何獲取本地HTML文件的標題,超級鏈接

編輯:Delphi

本文用於提取本地網頁的標簽元素如<TITLE></TITLE>,<IMG>,<A></A>...的內容,非常實用於批量文件的操作,這是按一般文件進行文本查找替換無法比擬的,,而這是使用TWEBBROWSER控件無法做到的。類似的,
你可以把本地的Html文件轉換成MHT文件(這是個大家覺得很棘手的問題,本人已經搞定)。

//uses activex,msHtml

function Html_GetTitleFromFile(const HtmlFile:TFileName;var FileTitle:String):Boolean;
var
Idoc     : IHtmlDocument2;
//ElementGroup : IHtmlElementCollection;
//HtmlItem: IHtmlElement;
PersistFile: IPersistFile;
begin
Result:=False;
if not fileexists(HtmlFile) then
exit;
  FileTitle:='';

  try
       Idoc := CreateComObject(Class_HTMLDOcument) as IHtmlDocument2;
       PersistFile := IDoc as IPersistFile;
       if PersistFile.Load(StringToOleStr(HtmlFile),1)<>S_OK then
       exit;
       IDoc.designMode := 'on';  //This will disable script execution.
    {   while IDoc.readyState <> 'complete' do  //if it dead here,how to do it?
       begin
       application.ProcessMessages;
       end;
    }
    //   Showmessage(IDoc.readyState);
       Application.ProcessMessages;
       sleep(1000);
    //   Showmessage(IDoc.readyState);
       if IDoc.readyState<>'complete' then
       begin
       Application.ProcessMessages;
       sleep(1000);
       end;
       if IDoc.readyState<>'complete' then
       begin
       IDoc:=nil;
       Result:=False;
       exit;
       end;
        Result:=True;
       FileTitle:=IDoc.title;
       {  //This code also works
       ElementGroup:=IDoc.all.tags('TITLE') As IHtmlElementCollection;
       HtmlItem:=ElementGroup.item(0,0) As IHtmlElement;
       FileTitle:=HtmlItem.innerText;
       }

   finally
        IDoc := nil;
   end;
end;


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved