如何获取本地HTML文件的标题,超级链接

王朝html/css/js·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

本文用于提取本地网页的标签元素如<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;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航