Entwickler-Ecke

Internet / Netzwerk - HTML Tabelle darstellen und Informationen erhalten


HenryHux - Mo 09.05.11 16:16
Titel: HTML Tabelle darstellen und Informationen erhalten
Hi,

ich habe bei mir eine größere Tabelle (auch schön mit mehreren verschachtelten Tabellen...), die ich gerne auslesen würde.
Die Tabelle ist in dem html Format von <table> bis </table>.
Wenn nicht alles so mies verschachtelt wäre, würde ich selber was schreiben, aber so muss ich euch doch mal fragen, wie ich da am besten drangehe. Habe schon ein bisschen gegoogelt, aber nichts gefunden, was mir wirklich geholfen hat.
Vielleicht kennt ihr ja einen freeware Parser oder soetwas in der Art. Wenn nicht, scheue ich auch nicht davor den selbst zu schreiben, vielleicht habt ihr ja dazu Tipps. :wink:

Lg


Narses - Mo 09.05.11 16:28

Moin!

user profile iconLannes hat hier mal ein Beispiel [http://www.delphi-forum.de/viewtopic.php?t=79678] gezeigt, wie man den TWebBrowser zum Zerlegen der HTML-Seite benutzen kann. Dann kann man anhand der DOM-Syntax auch schön drauf zugreifen. Hab ich selbst schon in ein paar Projekten erfolgreich benutzt. :idea: ;)

cu
Narses


HenryHux - Mo 09.05.11 16:43

Danke für die Antwort!
Klappt so wie er es gepostet hat ganz gut, bei meiner Seite crashed noch, aber gut.
Mein Problem ist aber noch das Gleiche wie vorher.
Ich will die Tabelle ja nicht einfach in dem WebBrowser anzeigen lassen, sondern damit eigene Dinge anstellen, wie zum Beispiel Daten filtern.
Wenn ich mir die Tags aus dem WebBrowser hole, habe ich aber immernoch die html Form.
Am liebsten wäre mir, wenn ich die Daten in ein mehrdimensionales String-Array bekomme..

lg


jaenicke - Mo 09.05.11 18:56

Genau dafür dient ja das Parsen. Wo du die Daten nach dem Auslesen dann speicherst, ist ja deine Sache.

In jedem Fall brauchst du einen Parser, ob du da jetzt den von MS benutzt, einen im Internet für Delphi suchst oder selbst einen schreibst, kannst du dir überlegen. ;-)


HenryHux - Mo 09.05.11 19:17

Ok, hatte gerade schon angefangen selber einen zu schreiben, glaube das dauert recht lange bei solchen Tabellen.
Habe jetzt einige gesucht, gibt soviel, dass ich garnicht weiß, wo ich anfangen soll :D
Kannst du mir vielleicht einen empfehlen?
Hab hier zb gesucht, da wird man ja überschwemmt :D
http://www.torry.net/pages.php?id=216

Liebe Grüße


jaenicke - Di 10.05.11 04:54

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Hab ich selbst schon in ein paar Projekten erfolgreich benutzt. :idea: ;)
Würde ich dir weniger raten, wenn es dir nur um das Parsen geht. ;-)

Das geht sehr viel schneller, wenn man das visuelle Objekt weglässt und nur den Parser benutzt. Ich habe nicht die Zeit eine kleine Demo dazu zu basteln, aber zum Glück habe ich hier eine gefunden: :mrgreen:
http://www.delphipraxis.net/65557-suchmaschinen-abfrage-delphi-einbinden.html#post441214
In diesem Thread wird darauf verlinkt und da geht es genau auch um das Einlesen einer Tabelle: :D
http://www.delphipraxis.net/88200-html-tabelle-einlesen.html#post782419


HenryHux - Di 10.05.11 15:29

Ok, danke.
Habe es nach einiger Zeit hinbekommen, dass es mit den meisten Tabellen klappt.
Doch bei der die ich bearbeiten will, klappt das leider so nicht.
Ich habe mal ein schnell zusammengeklicktes Projekt angehangen, wo ihr den Fehler schnell seht;
Die anderen Tabellen dadrin. Ich will nicht unbedingt vorher alle verschachtelten Tabellen rausschneiden, vielleicht weiß ja noch jemand einen Tipp =)
Beschreibung (zip, 874.38 KB)


HenryHux - Mi 11.05.11 14:39

Hi,

der Thread hat sich erledigt, habe dann mittlerweile auch mal den ICS-Kalender auf der Seite entdeckt -.-

lg


HenryHux - Fr 13.05.11 16:46

Hi, tut mir leid, dass ich hier nochmal aufmachen muss, aber es will eben doch nicht so wie es soll :D
Das mit der ICS Datei hat wunderbar geklappt, doch leider waren nur ca die hälfte der Kurse eingetragen.
Also habe ich mich ran gemacht die HTML Tabelle soweit wie möglich lesbar zu machen.
Hat gut geklappt, ich habe jetzt eine schön lesbare HTML-Tabelle ohne nervige Tags oder Classes.
Jetzt hab ich aber keine Idee wie ich die angehangene HTML-Datei gut parsen kann.
Da es oft mehrere Zellen gibt, ist das col- und rowspan wichtig.
Ich würde die jetzt einfach nehmen und dann die </td> tags abzählen, bis ich dann den Abschnitt der Tabelle separiert habe und den dann einzeln bearbeiten kann.
Doch leider krieg ich das nicht hin, ich komm mit der Struktur von der Datei nicht klar.
Könnte jemand vielleicht ganz kurz reingucken und mir einen Tipp geben?

lg


Html Datei als Text, .html is hier ja verboten.. (txt, 13.77 KB)