Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi HTML Tags aus String entfernen (https://www.delphipraxis.net/63656-html-tags-aus-string-entfernen.html)

Sascha_OW 21. Feb 2006 10:58


HTML Tags aus String entfernen
 
Hallo,

ich habe folgendes Problem: Ich habe einen String in dem eine Zeile HTML-Code drin ist. Jetzt die Frage, wie bekomme ich die Tags ab besten und schnellsten weg. Ich habe da ein Datumsbereich im HTMLcode, ein Titelbereich und einen Text. Und die 3 Sachen würde ich da gerne rausbekommen.
Ich habe mir überlegt einfach eine Schleife durchlaufen zulassen die als erstes nach dem '<' sucht und dann weitersucht so lange ich sie ein '>' findet und dann wieder von vorn beginnt solange bis sie nichts mehr findet. Aber was ist wenn im Titel oder im Text ein '>' odeer '<' drin ist, dann habe ich nur Fehler.
Beispiel des HTML String:
[delphi]<table width="500" border="1"><tr><td>Am 21.02.2006 um 11:53:26: test
test</td></tr></table>

alcaeus 21. Feb 2006 11:04

Re: HTML Tags aus String entfernen
 
Zitat:

Zitat von Sascha_OW
Aber was ist wenn im Titel oder im Text ein '>' odeer '<' drin ist, dann habe ich nur Fehler.

Das darf er nicht. < und > muessen, wenn sie als Zeichen angezeigt werden sollen, als Entities ausgegeben werden. Sprich, die muessen als &lt; und &gt; vorliegen.

Greetz
alcaeus

Klaus01 21. Feb 2006 11:06

Re: HTML Tags aus String entfernen
 
in einem html Text sollte IMHO kein > oder < vorhanden sein.
Diese Zeichen sollten als .. kodiert sein siehe hier:

http://de.selfhtml.org/html/referenz...#benannte_html

Grüße
Klaus


[edit] war jemand schneller ;o) [/edit]

Sascha_OW 21. Feb 2006 11:25

Re: HTML Tags aus String entfernen
 
kk, dann gehen wir davon aus das diese zeichen nicht mehr vorhanden sind. Kann man die dann rausfiltern mit einer while schleife und einer for schleife

Klaus01 21. Feb 2006 11:46

Re: HTML Tags aus String entfernen
 
du solltest den String durchsuchen

**
führende Leerzeichen aus dem String entfernen
Schauen ob das ersten Zeichen ein '<' ist, wenn nicht -> der Text fängt an
der Text geht so lange bis ein '<' kommt. Text speichern (String, Stringlist)
wenn das erste Zeichen ein '<' ist, das zugehörige '>' finden.
Den String kürzen um die Anzahl der Zeichen "<Tag>"

gehen zu *** bis das Ende des Strings erreicht ist


So stelle ich mir das grob vor.

Grüße
Klaus

Sascha_OW 21. Feb 2006 11:51

Re: HTML Tags aus String entfernen
 
wie ist denn der Befehl um einzene Buchstaben aus einem String zu löschen?

Matze 21. Feb 2006 12:03

Re: HTML Tags aus String entfernen
 
Zitat:

Zitat von Sascha_OW
wie ist denn der Befehl um einzene Buchstaben aus einem String zu löschen?

Das kannst du mittels Delphi-Referenz durchsuchenDelete oder Delphi-Referenz durchsuchenCopy umsetzen.

Sascha_OW 21. Feb 2006 12:16

Re: HTML Tags aus String entfernen
 
Delphi-Quellcode:
delete (Zeile, x, 1);
So habe ichd as jetzt gemacghtz, zeile ist der String und x die stelle, aber irgendwie will das nicht, das löscht irgedwie den 1, 3 ,5 buchstaben

Sascha_OW 21. Feb 2006 12:21

Re: HTML Tags aus String entfernen
 
so habe das jetzt anders gelöst habe die fertige function:
Delphi-Quellcode:
function withouttags (Zeile: string): string;
var i,anfang, ende: integer;
begin
    tag_gefunden := true;
    For i := 1 to length(zeile) do begin
        If zeile[i] = '<' then anfang := i;
        If zeile[i] = '>' then begin
           ende := i;
           delete (Zeile,1 , ende);
        end;
    end;
    result := zeile;
end;
EDIT:

Delphi-Quellcode:
function withouttags (Zeile: string): string;
var i,anfang, ende: integer;
begin
    i := 0;
    While i < length (zeile) do begin
        If zeile[i] = '<' then anfang := i;
        If zeile[i] = '>' then begin
           ende := i;
           delete (Zeile,anfang , ende );
           i := 1;
        end else inc(i);

    end;
    result := zeile;
end;
die 2. ist besser


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz