![]() |
Tags aus HTML-Code entfernen
Moin,
ich habe hier folgenden Code, mit dem ich Tags aus HTML-Code entfernen möchte:
Delphi-Quellcode:
Das funzt ganz gut, versagt aber mit einer Endlosschleife, wenn der HTML-Code fehlerhaft ist, also zb. mitten im Text nach anderen Tags ein br> (hier fehlt die spitze Klammer auf) steht und noch weitere Tags folgen.
While containsTags = True do begin
If (AnsiContainsText(HTMLCode, '<')) and (AnsiContainsText(HTMLCode, '>')) then begin containsTags:= True; Pos1:= AnsiPos('<', HTMLCode); Pos2:= AnsiPos('>', HTMLCode); Delete(HTMLCode, Pos1, Pos2-Pos1+1); end else containsTags:= False; end; Beispiel: <td colspan=3>F.R.I.E.N.D.S - Die Serie ist das TV-Phänomen der letzten Jahre. Die Geschichten von sechs Freunden, die in New York Liebe und Leben meistern, hat eine weltweite Fan-Gemeinde. Kein Wunder, daß die Besetzung immer noch die selbe ist, wie beim Start im Jahre 1994. b>Episoden:[/b] // Hier der Fehler im HTML-Code [*]Durch den Wind [*]Ist das Leben nicht schlecht? [*]Im Namen der Männlichkeit Ergebnis der Routine oben ist eine Endlosschleife. Hat da jemand ne Idee? Gruß Gambit |
Re: Tags aus HTML-Code entfernen
Hi,
ist zwar nicht so schnell, aber du könntest mit StringReplace und die HTML-Tag durch '' ersetzen. Oder du schaust dich nach einem ![]() ![]() mfG mirage228 |
Re: Tags aus HTML-Code entfernen
Zu gleichem hab ich gestern auch ne Funktion geschrieben. Du musst einfach nur prüfen ob ">" auch nach "<" kommt und nicht vorher
Hier der source (der auf jeden Fall verbesserungswürdig ist)
Delphi-Quellcode:
function TForm1.fRemoveTags(AText: String): String;
var LStart, LEnd: Integer; begin LStart := pos('<', AText); LEnd := 0; if LStart > 0 then begin LStart := LStart + 1; LEnd := PosEx('>', AText, LStart); end; while (LStart > 0) and (LEnd > LStart) do begin AText := copy(AText, 1, LStart - 2) + copy(AText, LEnd + 1, length(AText)); LStart := pos('<', AText); if LStart > 0 then begin LStart := LStart + 1; LEnd := PosEx('>', AText, LStart); end; end; result := AText; end; |
Re: Tags aus HTML-Code entfernen
|
Re: Tags aus HTML-Code entfernen
Besten Dank für die Tipps. Wobei ich das mit dem StringReplace noch nicht so ganz begriffen habe. Woher weiß ich denn was in den Tags steht? StringReplace(AText, '<*>', '') geht ja wohl nicht, oder?
Gruß Gambit |
Re: Tags aus HTML-Code entfernen
bei der lösung müsstest du soweit ich das verstanden habe alle tags einzeln entfernen. erst alle [b] dann alle [i] dann alle... und zwar jedes manuell!
|
Re: Tags aus HTML-Code entfernen
Stichwort Reguläre Ausdrücke - Dazu sollte sich genug finden!
|
Re: Tags aus HTML-Code entfernen
Achso...naja...aber die Lösung vom Sir Thornberry funzt auch gut, wobei man da vielleicht auch mit "Delete" arbeiten könnte anstelle der Concatenation...
gruß Gambit |
Re: Tags aus HTML-Code entfernen
Zitat:
Gruß Gambit |
Re: Tags aus HTML-Code entfernen
[google]Reguläre Ausdrücke Delphi[/google]
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20: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 by Thomas Breitkreuz