Einzelnen Beitrag anzeigen

Onkelrossie

Registriert seit: 7. Aug 2006
43 Beiträge
 
Delphi 7 Architect
 
#1

Tabelle mit TWebbrowser auslesen

  Alt 9. Mai 2009, 19:49
Hallo und guten Abend Ihr Lieben,

ich habe mal wieder ein Problem wo ich mit Lesen alleine nicht weiter komme.
Ich Suche nun schon seit mehreren Tagen über Google und die Forumsuche aber
alles was ich bisher finden konnte, half mir nicht wirklich weiter.

Ich versuche mit dem TWebbrowser eine Tabelle mit Kundendaten die bei uns im Intranet
zu finden ist, auzulesen und in ein Record zu speichern.
Mit Records bin ich sehr vertraut das ist nicht mein Problem.
Ich komme nur nicht an die Daten der Tabelle sprich ich weiß nicht wie ich diese
auslesen soll.

Erstmal hier ein auszug aus der Tabelle damit Ihr den aufbau mal sehen könnt:

Delphi-Quellcode:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en-AU">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta name="author" content="fullahead.org" />
  <meta name="keywords" content="reflection, fullahead, pat, OSWD, more, keywords, separated, with, commas" />
  <meta name="description" content="OSWD reflection XHTML template by fullahead.org" />
  
  <title>Kundendaten</title>

  <link rel="stylesheet" type="text/css" href="screen_yellow.css" media="screen, tv, projection" />
</head>

<body>
...
!weiterer HTML und Javascript Code!
...
<table width="82%" border="1" align="center" cellpadding="0" cellspacing="0" class="norm">
  <tr>
    <td >[url="index.php?p=list&Data=1&order=name&wie=asc"]Name[/url]</td>
    <td >[url="index.php?p=list&Data=1&order=vorname&wie=asc"]Vorname[/url]</td>
    <td >[url="index.php?p=list&Data=1&order=strasse&wie=asc"]Strasse[/url]</td>
    <td >[url="index.php?p=list&Data=1&order=hausnummer&wie=asc"]Hausnummer[/url]</td>
    <td >[url="index.php?p=list&Data=1&order=plz&wie=asc"]PLZ[/url]</td>
    <td >[url="index.php?p=list&Data=1&order=ort&wie=asc"]Ort[/url]</td>
    <td >[url="index.php?p=list&Data=1&order=land&wie=asc"]Land[/url]</td>
    <td >[url="index.php?p=list&Data=1&order=telefon&wie=asc"]Telefon[/url]</td>   
  </tr>
  
  <tr>
    <td>Mustermann</td>
    <td>Max</td>
    <td>Musterstrasse</td>
    <td>1</td>   
    <td>00001</td>
    <td>Musterhausen</td>
    <td>Deutschland</td>
    <td>0123/4567890</td>
  </tr>
  
  <tr>
    <td>Müller</td>
    <td>Monika</td>
    <td>Müllerring</td>
    <td>9</td>   
    <td>00002</td>
    <td>Müllerhausen</td>
    <td>Deutschland</td>
    <td>3210/0987654</td>
  </tr>
</table>
...
!weiterer HTML und Javascript Code!
...
</body>
</html>
Wie Ihr sehen könnt hat die Tabelle keinen eindeutigen Namen.
Es ist auch nur eine Tabelle auf der gesammten Seite vorhanden.
Irgendwie muss es doch möglich sein an die Daten ran zu kommen?

Ich habe es schon mit den Tipps von hier und hier versucht aber das setzt immer voraus das man den Namen der Tabelle kennt.

Versuche ich das ganze mit idHTTP oder als XML zu Parsen ->
Zitat von marabu:
Hallo Hoschie,

an den XML-Source des WebBrowsers kommst du per late binding:
Delphi-Quellcode:
var
  ws: WideString;
  doc: OleVariant;
begin
  doc := WebBrowser.Document;
  ws := doc.XMLDocument.XML;
  ShowMessage(ws);
end;
Freundliche Grüße
bekomme ich immer den Fehler: Method 'XMLDocument' not supported by automation object.

Bisher kam ich immer gut zurecht mit folgendem Code den ich auch gut verstehe:
Webbrowser1.OleObject.Document.Forms.Item('form1').Elements.Item(0).Value := Edit1.Text; Damit kann ich die Seite wie eine XML-Datei (Baumkonstrukt) auslesen.
Das hat immer geklappt bis auf das auslesen von Tabellen.

Wie müsste ich im Optimalfall den Code verändern damit er auch bei Tabellen geht?
Oder muss ich hier auf eine ganz andere Methode zurück greifen?

Am liebsten wäre es mir wie gesagt die Tabelle direkt mit dem Webbrowser
auszulesen bzw. zu parsen. Das muss doch irgendwie gehen. Eine Combobox kann ich ja auch
ohne weiteres mit einer For-Schleife und dem o.g. Code (etwas abgewandelt) auslesen.

Ich habe schon so viel versucht und bin mit meinem Latain am Ende.
Bin euch für jede weitere Hilfe dankbar!

Vielen Dank schonmal im Voraus!


Mit freundlichen Grüßen
Wolfgang
  Mit Zitat antworten Zitat