HTML-Befehle per Java entfernen

  • Themenstarter Themenstarter Chatrick
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
C

Chatrick

Gast
Moin Leute für euch bestimmt ne einfache aufgabe! Ich will eine HTML datei die ich in einem String habe von allen HTML befehlen befreien! Wwelche möglichkeiten gibt es da? Habe unter Swing einen HTML parser gefunden steige bei diesem aber nicht durch! Vielen Dank
Chatrick
 
Willst du nur die Tags entfernen oder auch deren Inhalt? Und was hat es mit dem erwähnten String auf sich?
 
Naja bin jetzt nicht so der html experte aber meine es so:
Folgenden HTML Text habe ich in einem String

<FONT COLOR="#FF0000" > 1.Röber, Robin 95 LG Reinbek Ohe 3:37,9 min</FONT>

Nach bearbeitung soll nur noch der reine Text da sein. Also:

1.Röber, Robin 95 LG Reinbek Ohe 3:37,9 min
 
Das ist doch simpel:

Code:
String s ="<FONT COLOR=\"#FF0000\" > 1.Röber, Robin 95 LG Reinbek Ohe 3:37,9 min</FONT>";
         s = s.replaceAll("</?[^>]+>",""); 
         System.out.println(s);
 
Klasse super funktioniert! Da ich gerne immer alles wisse und auch noch ein sehr jungfreulicher Informatik Student bin, kann ich den Ausdruck nicht deuten! Klar reguläre Ausdrücke aber könntest du mir den mal in Worten übersetzen?
 
Code:
s.replaceAll("</?[^>]+>","");

Ich nehm den mal auseinander:

Code:
<
Als erstes Zeichen muss eine öffnende, spitze Klammer kommen. Die ist ja auch der Anfang von allen HTML Tag

Code:
/?
Danach darf, muss aber kein / kommen. Das Fragezeichen bedeuted, darf einmal oder keinmal vorkommen.

Code:
[^>]
In Eckigen Klammern stehen Zeichenklassen. Das ^ steht dabei für eine Negation. [^>] trifft also auf alle Zeichen, außer der schließenden Klammer zu. Allerdings nur auf genau ein Zeichen

Code:
[^>]+
Das Plus dahinter bedeuted, dass, was vor dem Plus steht, darf beliebig oft wiederholt werden, muss aber mindestens einmal vorkommen. Damit trifft dieser Teilausdruck einen beliebig langen Teilstring, wo keine schließende spitze Klammer vorkommt.

Code:
>
Am Ende muss eine schließende spitze Klammer kommen.

Dieser ganze String soll dann durch den Leeren String, "", ersetzt werden.

Jetzt verständlich?
 
entschuldige wenn ich hier eine frage in einem fremden eitrag stelle aber nur mal rein interessehalber...

was wäre bei einem xml dokument oder einem php oder js in das ein xml dokument mittels string eingebettet ist welcher eine CDATA sektion besitzt die dann ja auch oben genannte zeichen als nicht html entity sondern als genau dieses zeichen enthalten können welche dann auch ersetzt würden?

Gruss Sascha
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben