VB语句 WebBrowser1.Document.getElementsByTagName("Table")好像没有Delphi对应的语句。
在DELPHI 中,这句应该怎样才能写出来呢?  有人说将 Document 转换成 IHTMLDocument2接口 即可访问getElementsByTagName方法。但应该具体如何做呢?能不能给个例子
 谢谢。

解决方案 »

  1.   

    //写法一:var
      Node:Variant;
    begin
      Node:=WebBrowser1.OleObject.Document.getElementsByTagName('Table');
    //写法二:
    var
      Document:Variant;
      Node:Variant;
    begin
      Document:=WebBrowser1.Document;
      Node:=Document.getElementsByTagName('Table');
      

  2.   

    写法三:uses mshtml;var
      doc:IHTMLDocument3;
      nodes:IHTMLElementCollection;
    begin
      doc:=WebBrowser1.Document as IHTMLDocument3;//呵呵,这儿可不是IHTMLDocument2
      nodes:=doc.getElementsByTagName('table');
    ....上面前两种是类似脚本的DISPATCH调用,第三种是使用MSHTML接口单元类型定义的写法.
    还可以很多种变化,只要你有足够DELPHI的COM知识.
      

  3.   

    还有一个问题,可以追加分的,请帮一下var
      doc:IHTMLDocument3;
      tables:IHTMLElementCollection;
      Table1 :HTMLTable;
       Row :HTMLTableRow;
        Cell : HTMLTableCell ;
       i,j:integer;
    begin
      doc:=WebBrowser1.Document as IHTMLDocument3;//呵呵,这儿可不是IHTMLDocument2
      tables:=doc.getElementsByTagName('table');
      For i:=1 To Table1.rows.length - 1 do   
      begin
          row:=Table1.rows(i);
    .............为什么在编译时,      row:=Table1.rows(i); 总是出错,到底错在那里呢?