现在要对HTML文件进行解析, 主要是从HTML文件中提取各个Element, 插入删除替换一些 Element。 本来用IE是比较容易实现的, 但是现在必须在后台处理, 没有界面, 这样IE的加载就比较困难。同时为了减少开销和代价,所以想尽量避免使用IE。 想要一个比较好的解析器什么的。 多谢了! 自己也想实现一个简单的, 但是为了保证有足够的容错性, 对HTML有足够的支持, 最终放弃了。

解决方案 »

  1.   

    procedure TForm1.Button4Click(Sender: TObject);
    var
      Strs: TStrings;
      S1, S2, S3, FileName: String;
    begin
      Filename := '文件名称,如aa.html';
      Strs := TStringList.Create;
      Strs.LoadFromFile(FileName);
      S1 := Strs.Text;
      S1 := StringReplace(S1, ' ', '', [rfReplaceAll]);
      S1 := StringReplace(S1, #9, '', [rfReplaceAll]);  
      S1 := StringReplace(S1, #13, '', [rfReplaceAll]);
                      //在这个地方最好添加一些语句,实现:去掉文件中的空格,
                      //还要注意Tab, 回车等
                      //否则下面的StringReplace起不了作用
      S2 := '要找的字符串'
      S3 := '更换成的字符串'
      S1 := StringReplace(S1, S2, S3, [rfReplaceAll, rfIgnoreCase]);
      Strs.Text := S1;
      Strs.SaveToFile(Filename);
      Strs.Free;
    end;
      

  2.   

    先谢谢, 不过。
    HTML解析绝对不是这么简单的。
    最简单的例子:提取Body <BODY .....> ... </BODY>, 但是要知道有可能没有</BODY>这个结束标签, 也可能有多个<BODY>标签, 如果解析内部标签的话还有多重嵌套,如果有样式表怎么办? 如果有脚本怎么获取? 
      

  3.   

    我有一个别人的例子:give me your mail
      

  4.   

    有很多HTML本身就不规范,有开始符没结尾符的,IE能正常显示,实际HTML的代码很乱。
    HTML解析不简单啊,所以才提倡更规范的XML。
      

  5.   

    多谢各位友情UP!
    to: zjqyb(风清扬*任它溺水三千,我只取一瓢饮*) ( ) 
    我的邮箱是: [email protected]
      

  6.   

    zjqyb(风清扬*任它溺水三千,我只取一瓢饮*) 也给我一个可以吗?
    在此先谢谢了
      

  7.   

    zjqyb(风清扬*任它溺水三千,我只取一瓢饮*) 前辈
    俺也想看看,[email protected] 多谢!
      

  8.   

    我没做过相关的开发,但不知道可以不可以用xml的解析器来试一下。
      

  9.   

    to: zjqyb(风清扬*任它溺水三千,我只取一瓢饮*) ( ) 
    已收到, 看过了它的实现。 功能还是比较弱。目前只能使用IE了。