Delphi 如何从html格式的字符串中提取纯文本?


本文整理自网络,侵删。

 
function StripHTMLTags(const strHTML: string): string;
var
  P: PChar;
  InTag: Boolean;
  i, intResultLength: Integer;
begin
  P := PChar(strHTML);
  Result := '';

  InTag := False;
  repeat
    case P^ of
      '<': InTag := True;
      '>': InTag := False;
      #13, #10: ; {do nothing}
      else
        if not InTag then
        begin
          if (P^ in [#9, #32]) and ((P+1)^ in [#10, #13, #32, #9, '<']) then
          else
            Result := Result + P^;
        end;
    end;
    Inc(P);
  until (P^ = #0);

  {convert system characters}
  Result := StringReplace(Result, '&quot;', '"',  [rfReplaceAll]);
  Result := StringReplace(Result, '&apos;', '''', [rfReplaceAll]);
  Result := StringReplace(Result, '&gt;',   '>',  [rfReplaceAll]);
  Result := StringReplace(Result, '&lt;',   '<',  [rfReplaceAll]);
  Result := StringReplace(Result, '&amp;',  '&',  [rfReplaceAll]);
  {here you may add another symbols from RFC if you need}
end;

相关阅读 >>

Delphi 如何将颜色值转换为html格式?

Delphi中组件label、edit、tag、memo、richedit

Delphi xe ttask.waitforall/waitforany 一不小心会造成内存泄露

Delphi readprocessmemory 输入进程id 输入读取地址

Delphi 下载函数

Delphi 通过程序窗体句柄获取程序路径

Delphi读取一个access数据库中的表名

Delphi android windows ios通用获取程序版本

android实例-拍摄和分享照片、分享文本(xe8+小米2)

Delphi drawing text 绘制文本

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...