网上很多把HTML转换成纯文本格式的方法很多思路都是用正则表达式或者分析html代码替换的方法。
本文是利用IE完成转换,即利用IHTMLDocument2接口。
Denon天Denon龙Denon 转换结果:
uses MSHTML;
function HtmlToText(HtmlText: WideString): WideString;
var
V: OleVariant;
Document: IHTMLDocument2;
begin
Result := HtmlText;
if HtmlText = '' then Exit;
CoInitialize(nil);
Document := CoHTMLDocument.Create as IHtmlDocument2;
try
V := VarArrayCreate([0, 0], varVariant);
V[0] := HtmlText;
Document.Write(PSafeArray(TVarData(v).VArray));
Document.Close;
Result := Trim(Document.body.outerText);
finally
Document := nil;
CoUninitialize;
end;
end;
注意:IHtmlDocument2如果在线程内部用,在构造函数生成IHtmlDocument2一个接口,容易出现mshtml.dll和ntdll.dll错误,此错误不是每次发生。