如何获取html表单中的数据?

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      WebBrowser1.Navigate('about:blank');
      while WebBrowser1.ReadyState < READYSTATE_INTERACTIVE do
        Application.ProcessMessages;
      WebBrowser1.OleObject.Document.body.innerHTML := Memo1.Text;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      i, j: integer;
      ovTable: OleVariant;
    begin
      //HTML中的第一個Table
      ovTable := WebBrowser1.OleObject.Document.all.tags('TABLE').item(0);
      StringGrid1.RowCount := ovTable.Rows.Length ;
      StringGrid1.ColCount := ovTable.Rows.Item(i).Cells.Length;  for i := 0 to (ovTable.Rows.Length - 1) do
      begin
        for j := 0 to (ovTable.Rows.Item(i).Cells.Length - 1) do
        begin
          StringGrid1.Cells[j,i] := ovTable.Rows.Item(i).Cells.Item(j).InnerText;
        end;
      end;
    end;
      

  2.   

    改成
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      WebBrowser1.Navigate('about:blank');
      while WebBrowser1.ReadyState < READYSTATE_INTERACTIVE do
        Application.ProcessMessages;
      WebBrowser1.OleObject.Document.body.innerHTML := Memo1.Text;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      i, j: integer;
      ovTable: OleVariant;
    begin
      //HTML中的第一個Table
      ovTable := WebBrowser1.OleObject.Document.all.tags('TABLE').item(0);
      StringGrid1.RowCount := ovTable.Rows.Length ;
      StringGrid1.ColCount := ovTable.Rows.Item(i).Cells.Length;  for i := 0 to (ovTable.Rows.Length - 1) do
      begin
        for j := 0 to (ovTable.Rows.Item(i).Cells.Length - 1) do
        begin
          StringGrid1.Cells[j,i] := ovTable.Rows.Item(i).Cells.Item(j).InnerText;
        end;
      end;
    end;
    试试
      

  3.   

    你若想直接取到数据集中,
    可先把html转换成xml,然后用TClientDataSet控件直接连接xml...