![]() |
(angezeigten) Text einer HTML-Quelle ermitteln
Salut.
Wie kann ich aus HTML-Quelltext den Text herausfiltern, den ich mit Ctrl-A im Browser selektieren würde? Sieht der HTML-Quelltext z.B. so aus:
XML-Code:
Dann würde ich gern folgenden Text haben wollen:
<html>
<head> ... </head> <body> <h3>Überschrift</h3> Hallo Welt!</p> <body> </html>
Code:
Das entspricht einem Ctrl-A, Ctrl-C im Browser und Ctrl-V im Editor.
Überschrift
Hallo Welt! Wie kann ich den gleichen Ergebnistext mit Delphi ermitteln? Ich habe bei den Delphi-Komponenten keine Eigenschaft Text oder ähnlich gefungen... MfG Panthrax |
Re: (angezeigten) Text einer HTML-Quelle ermitteln
Alle "<" und ">" suchen, das dazwischen mit den "<>" löschen, und aus "
" einen zeilenumbruch machen. Wobei dann aber nicht zwischen GROßEN und kleinen Texten unterschieden wird. |
Re: (angezeigten) Text einer HTML-Quelle ermitteln
Danke für deine Antwort.
...aber die Lösung ist zu propitär. Sie berücksichtigt nicht, dass es Tags gibt die Text umschließen, der nicht angezeigt wird; Beispiele: Title, Script, Style, Frame, IFrame,... MfG Panthrax |
Re: (angezeigten) Text einer HTML-Quelle ermitteln
Hallo Panthrax,
versuche es mal so:
Delphi-Quellcode:
Grüße vom marabu
uses
MSHTML; var doc: IHTMLDocument2; begin doc := WebBrowser.Document as IHTMLDocument2; ShowMessage(doc.body.innerText); end; |
Re: (angezeigten) Text einer HTML-Quelle ermitteln
Wenn du es ohne die IE-Objekte machen willst, blieben da noch PCRE (Reguläre Ausdrücke). In der JCL gibt es dazu ein Beispiel. Ansonsten TPerlRegEx von
![]()
Code:
...
s/<(?:.??)>//gism
|
Re: (angezeigten) Text einer HTML-Quelle ermitteln
Hallo.
@marabu: Deine Lösung finde ich genau richtig. Leider löst jeder Zugriff auf das Interface Doc (Typ IHTMLDocument2) eine AV aus. Habe es auch mit Doc.title probiert - ebenfalls eine AV. Die Unit MSHTML kannte ich bis eben nicht. Da das Neuland für mich ist muss ich nochmal fragen, woran könnte es liegen, es das zugehörige Objekt WebBrowser1.Document (= nil) nicht gibt? [Edit]WebBrowser1.Navigate('http://abc.de'); wurde ausgeführt.[/Edit] @Olli: Danke für den Hinweis. Reguläre Ausdrücke könnte ich mir noch vorstellen. Obwohl dabei wieder das berücksichtigt werden müsste, was ich oben erwähnte. MfG Panthrax |
Re: (angezeigten) Text einer HTML-Quelle ermitteln
Ich glaube in dem Interface war ein Fehler (bzw. in der Unit). Ich melde mich nochmal, wenn ich mein Mailarchiv durchsucht habe.
|
Re: (angezeigten) Text einer HTML-Quelle ermitteln
Panthrax, du schreibst du hättest das betreffende HTML-Dokument geladen. Wenn WebBrowser.Document nil ist, dann scheint mir der Ladevorgang zu dem Zeitpunkt noch nicht beendet zu sein, zu dem du deinen Zugriff machst. Hinweise darauf, wie du den richtigen Zeitpunkt abpassen kannst, erhältst du
![]() marabu |
Re: (angezeigten) Text einer HTML-Quelle ermitteln
Sorry, auch wenn ich noch nicht so alt bin hat mich meine Erinnerung getäuscht. Was ich meinte war das IDocHostUIHandler-Interface :-\
|
Re: (angezeigten) Text einer HTML-Quelle ermitteln
Olli, dass mit dem faulty memory recall wird immer schlimmer - nicht nur bei dir. Ich dachte früher, ich werde alt, aber heute weiß ich woran es liegt: information overload! Die armen Synapsen...
Heitere Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 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 by Thomas Breitkreuz