![]() |
Tabelle mit TWebbrowser auslesen
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:
Wie Ihr sehen könnt hat die Tabelle keinen eindeutigen Namen.
<!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> 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 ![]() ![]() Versuche ich das ganze mit idHTTP oder als XML zu Parsen -> Zitat:
Bisher kam ich immer gut zurecht mit folgendem Code den ich auch gut verstehe:
Delphi-Quellcode:
Damit kann ich die Seite wie eine XML-Datei (Baumkonstrukt) auslesen.
Webbrowser1.OleObject.Document.Forms.Item('form1').Elements.Item(0).Value := Edit1.Text;
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 |
Re: Tabelle mit TWebbrowser auslesen
Hallo
Ansatz ohne Verwendung von TWebbrowser, mit IdHttp und Ermittlung von IHTMLDocument2:
Delphi-Quellcode:
function GetDocument(const markup: WideString): IDispatch;
var doc: OleVariant; begin Result := CoHtmlDocument.Create; doc := Result; doc.Open; doc.Write(markup); doc.Close; end; var docd: IDispatch; doc: IHTMLDOCUMENT2; url: String; itable: IHTMLTable; begin url := 'http://www.DeineURL.xyz'; doc := GetDocument(IdHttp1.Get(url)) as IHTMLDocument2; GetTable(Doc, 0, itable) // siehe Link unten etc.. end; Die Tabelle kannst du dann wie ![]() |
Re: Tabelle mit TWebbrowser auslesen
Hallo,
Zitat:
![]() |
Re: Tabelle mit TWebbrowser auslesen
Vielen Dank für eure Antworten!
Habe mich für die Lösung von Lannes entschieden und komme sehr gut damit zurecht. MfG Wolfgang |
Re: Tabelle mit TWebbrowser auslesen
ich finde die hier auch ganz gut:
![]() ... The Table plugin keeps tracks of HTML tables encountered during the parsing. Other parsing processes can query the Table plugin about the table cell and column and the table nesting. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz