![]() |
Webbrowser: <tr> </tr> suchen und Werte auslesen
Hallo Zusammen,
Ich steh mal wieder aufm Schlauch... Ich möchte aus einer HomePage eine Tabelle auslesen. Dabei möchte ich alle Werte aus einer Zeile in ein Array übernehmen. Mein Gedanke ist also das Element <tr> zu suchen und dann bis zu </tr> alle <td>'s einzutragen. Aus der Webbrowser Demo von toms habe ich diesen Code um Links zu finden. (is insgesamt länger, aber ich denke das hier die interessante Stelle steckt)
Delphi-Quellcode:
Ich versuche nun aus
ElementCo := htmlDoc.link;
j := ElementCo.Length - 1; for i := 0 to j do begin u := ElementCo.item(i); s := u.href; showmessage('s'); end;
Delphi-Quellcode:
sowas wie
ElementCo := htmlDoc.link;
Delphi-Quellcode:
zu machen um an die <tr> zu kommen.
ElementCo := htmlDoc.tag;
Jo... Wie ihr seht steh ich ziemlich im Wald und es würde mich nicht wundern, wenn ich nen ganz anderen Weg gehen muss. Aber leider seh ich mitlerweile bei den ganzen Variants und IDHTMLELEMENTEN usw. gar nicht mehr durch... Bin auch was DOM und OLE angeht ein absoluter Anfänger(mit gefährlichem Halbwissen)... :( |
Re: Webbrowser: <tr> </tr> suchen und Werte ausl
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
HTML kann man sich wie einen Baum vorstellen, der sich immer weiter verästelt bis zu den Blättern (das wären die einzelnen Texte und Attribute). So einen Baum kann man gut als Treeview darstellen. (siehe Anhang) Firefox kann das von Hause aus (irgendwo unter Hilfe -> DOM ....) beim IE muss man den ![]() Also entweder Firefox oder IE Developer Toolbar ist ein "must-have"! Durch den angezeigten Baum siehst du, wieviele Ebenen du hinuntersteigen musst, bis du an deine <TABLE> bist. So, ich lass das erst mal "sacken" bei dir. |
Re: Webbrowser: <tr> </tr> suchen und Werte ausl
Zitat:
|
Re: Webbrowser: <tr> </tr> suchen und Werte ausl
Danke für die Hinweise...
Bei Opera heisst das Dragonfly und ist seit der 9.5 mit dabei... ;) Aber wie genau greif ich jetzt über den Webbrowser auf ein einzelnes Element aus diesem Baum zu? Auf die Links kann ich ja bereits zugreifen... Ich hätte halt gedacht, dass ich bei dem Source statt
Delphi-Quellcode:
nur nen anderen "Typ" angeben muss...
ElementCo := htmlDoc.link;
Ich will ja keine Links, sondern tables. Ist dieser Gedankengang so richtig? Achja: Die Tabelle hat beliebig viele Zeilen, die alle eingelesen werden sollen. Also kann ich nicht mit nem festen Index auf die Werte zugreifen. Bin Euch aber für weitere Links zum Thema dankbar. Interessieren tuts mich ja schon... hab nur gerade nen bisschen Source-Frust... ;) |
Re: Webbrowser: <tr> </tr> suchen und Werte ausl
Du kannst die Webseite in ein DOM-Objekt laden und dann mit XPATH alle Knoten auf einmal erfragen/finden.
Geht warscheinlich schneller, als wenn du manuell suchst. |
Re: Webbrowser: <tr> </tr> suchen und Werte ausl
Ich denke genau das will ich machen...
Mit Webbrowser.Document hab ich ja das DOM Objekt schon, oder? Das muss ich nun nach meiner Tabelle durchsuchen... Laut DOM Dokumentation von w3c müsste folgendes gehen:
Delphi-Quellcode:
Aber TurboDelphi kennt getElementById nicht...
showmessage(webbrowser.document.getElementById('myTable').rows[0].innerHTML);
Wo is da mein Denkfehler? |
Re: Webbrowser: <tr> </tr> suchen und Werte ausl
Zitat:
![]() und musst die ganze Zeit mit dem AS-Operator arbeiten. Wenn du ein IHTMLElement am Wickel hast, dass aber eigentlich eine Tabelle ist, dann muss man mit as das Interface tauschen:
Delphi-Quellcode:
Um z.B. an die Methode getElementById zu kommen benötigt man IHTMLElement3:
elem := ....
table := elem as IHTMLTable;
Delphi-Quellcode:
Es empfiehlt sich, mit Zwischenvariablen zu arbeiten um nicht immer ganz ober über das Objekt webbrowser einsteigen zu müssen.
(webbrowser.document.root as IHTMLElement3).getElementById(.....
|
Re: Webbrowser: <tr> </tr> suchen und Werte ausl
Danke Shmia...
Genau das casten war das Problem... Hab immer auf IHTMLDocument2 versucht... Ich denk jetzt ist der Knoten geplatzt... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 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