Strings von HTML befreien

Dave

Aktives Mitglied
Hallo,

ich würde gerne wissen ob JAVA vom Hausaus iene möglichkeit bietet Strings von HTMLcode zu befreien ?

ich bezweifle aber dies deshalb habe ich eine andere Frage hat jemand vllt. ein gutes deutschsprachiges Tutorial wo beschrieben wird wie man Reuläre Ausdrucke erstellt?

ich würde zb. wissen wie ich in einem regex mehrere Wörter austauschen kann (replaceAll()).


Bäruchte sowas da ich von einer Internetseite kopierten Text aus der zwischanablage auslese und da nach bestimmten Schlüsselwörtern und deren Parametern suchen muss.

Bsp:
HTML:
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body><tr><td valign="top" width="30%">Schlüsselwort1:

              </td>

              <td valign="top" width="70%">ParameterVon1

          	</td>

  	 </tr>
  <tr>
<td height="1" valign="top" width="70%"><div id="tdetails" 
style="display: inline;"><div style="width: 150px; float: left;">Schlüselwort2:</div>
 ParameterVon2<br style="clear: left;"><div style="width: 150px; float: left;">Schlüsselwort3:</div>
.......

das war ein kleiner Ausschnitt von dem Text den ich auslese, wie ihr seht ändert sich die Position der Schlüsselwörter und Parameter, somit fählt das Zeilen und Zeichen genaue absuchen weg.

ich wollte jetzt einfach alle HTMLtags entfehrnen damit ich nur Schlüsselwörter:parameter stehen habe aber das wird schwer da ich mit regex garkeien Erfahrung habe ^^


also meien Fargen lauten:

1 - Gibt es eine Java funktion die Strings von HTML befreit?
2 - Kennt jemand ein gutes deutschsprachigesTutorial für regex?
3 - Hat jemand vllt. eien andere idee wie ich mir die Schlüsselwörter und deren parameter von dem Text rausfiltern kann ?
LG
 

noobadix

Bekanntes Mitglied
Hallo, ich hab's mal ganz rudimentär gelöst, denke, es klappt:

Java:
import java.util.ArrayList;

class testing{
	public static void main(String[] args){
		testing t = new testing();
		ArrayList<String> inhalt = t.suche("<html><p>testtextleckerlecker</p><p>sehrlecker</p></html>");
		for(int i=0;i<inhalt.size();i++){
			System.out.println(inhalt.get(i));
		}
	}
	
	public ArrayList<String> suche(String st){
		ArrayList<String> ergebnis = new ArrayList<String>();
		for(int i=0;i<st.length();i++){
			String tmp = st.charAt(i)+"";
			if(tmp.equals(">")){
				if((i+1)<st.length()){
				String next = st.charAt(i+1)+"";
				if(!next.equals("<")){
					StringBuffer sb = new StringBuffer();
					String hit ="";
					int index = ++i;
					while(!hit.equals("<")){
						hit = st.charAt(index)+"";
						sb.append(hit);
						index++;
						hit = st.charAt(index)+"";
					}
					ergebnis.add(sb.toString());
				}
				}
			}
		}
		return ergebnis;
	}
}
 

noobadix

Bekanntes Mitglied
Naja, klappt nur, wenn aus dem HTML-Kod schon alle " entfernt sind. Müsste wissen, wie/als was das Zeug aus der Zwischenablage im Java-Kod anzutreffen ist.
 

Pfaeff

Aktives Mitglied
Mit RegEx wirst du, je nach dem was du vorhast bei HTML an die Grenzen stoßen.
HTML (bzw. XML) ist nämlich nicht regulär (RegEx = Regular Expressions), sondern kontextfrei.
Dafür würde sich zum Beispiel ein Kellerautomat besser eignen.
 

Dave

Aktives Mitglied
@frapo thx, hilft mir aufjedenfall weiter ;)

@noobadix,

bua guter Gedanke die <> und was zwischen dehnen ist zu löschen ;)

vielen vielen dank.
 

noobadix

Bekanntes Mitglied
Mit diesen Pattern/Matchern wollt ich nix zu tun haben...aber nach diesen freundlichen Tutorials ging es dann doch:
Java Regular Expressions

regex über mehrere Zeilen - Java @ tutorials.de: Forum, Tutorial, Anleitung, Schulung & Hilfe

Ergebnis:
Java:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.awt.Toolkit; 
import java.awt.datatransfer.*;

class testing{
	public static void main(String[] args){
		Clipboard systemClipboard;
		systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
		Transferable transferData = systemClipboard.getContents( null );
		for(DataFlavor dataFlavor : transferData.getTransferDataFlavors()){
			Object content = "";
		    try{
		    	content = transferData.getTransferData( dataFlavor );
		    }
		    catch(Exception e){}
		    if ( content instanceof String ){ 
		    	String contentString = (String) content;
		    	Pattern patt = Pattern.compile("<.*?>",Pattern.DOTALL);
		    	Matcher matcher = patt.matcher(contentString);
		    	while(matcher.find()){
		    		contentString = contentString.replace(matcher.group(), "");
		    	}
		    	System.out.println(contentString);
		        break;
		     }
		}
	}
}
 
Zuletzt bearbeitet:

Ebenius

Top Contributor
Ich hätte übrigens noch einen solchen Ansatz, wenn Du das probieren möchtest. Weiß aber nicht, ob das für Dich sinnvoll ist:
Java:
final HTMLEditorKit kit = new HTMLEditorKit();
try {
  final Document doc = kit.createDefaultDocument();
  kit.read(new StringReader("<html><body>Huhu<p>Test</body></html>"),
        doc, 0);
  System.out.println(doc.getText(0, doc.getLength()));
} catch (Exception ex) {
  ex.printStackTrace();
}
Ebenius
 
B

ben2000xx

Gast
Ich kann dir, wie Ebenius, auch SWING Empfehlen. Anbei das ganze in eine Klasse gepackt:

Java:
public class StringFilterHTML extends HTMLEditorKit.ParserCallback {
	StringBuffer s;

	public void parse(Reader in) throws IOException {
		s = new StringBuffer();
		ParserDelegator delegator = new ParserDelegator();
		delegator.parse(in, this, true);
	}

	public void parse(String string) throws IOException {
		StringReader in = new StringReader(string);
		s = new StringBuffer();
		ParserDelegator delegator = new ParserDelegator();
		delegator.parse(in, this, true);
	}

	public void handleText(char[] text, int pos) {
		s.append(text);
	}

	public String getText() {
		return s.toString();
	}

	public static void main(String[] args) {
		try {
			// the HTML to convert
			String html = "<HTML><HEAD></HEAD><BODY><b>Hello</b>&nbsp;World!<br></BODY></HTML>";
			StringFilterHTML parser = new StringFilterHTML();
			parser.parse(html);
			System.out.println(parser.getText());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

Habe gute Erfahrung damit gemacht. Aber dass es immer mal Probleme mit nicht validem HTML geben wird, wirst du wohl nicht umgehen können.

Ben
 

noobadix

Bekanntes Mitglied
Hab da noch so nen Gedanken:
Könnte man vielleicht einen Browser auf Java-Basis, wenn es sowas gibt, aufbrechen und den, ich sag mal, stream, der zur Anzeige geht, also den interpretierten HTML-Kod, abfangen und diesen dann auf < und > untersuchen?

edit: den hier hab ich auf Anhieb gefindet: Lobo Project Java Source Code
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B HTML Tags in Strings umwandeln Allgemeine Java-Themen 4
N Speichern von Strings als HTML-Datei Allgemeine Java-Themen 4
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
W JSON parsen eines ,mit JS.stringify erstellten Strings Allgemeine Java-Themen 27
L allgemein Strings händisch in Liste sortieren Allgemeine Java-Themen 47
N MySQL mit Strings Allgemeine Java-Themen 3
T Letztes Zeichen eines Strings enfernen Allgemeine Java-Themen 14
P Strings: equals vs == Allgemeine Java-Themen 47
G Objekte mit Strings Aufrufen Allgemeine Java-Themen 8
W Collections Suche Collection, um Strings mit Indizees versehen Allgemeine Java-Themen 47
V Datentypen Graphikrechner 2/Strings und Variablen in Doubles umwandeln Allgemeine Java-Themen 6
LimDul Mittels Streams aus Strings A B C den String A, B und C machen Allgemeine Java-Themen 12
Meeresgott Best Practice Strings auf Inhalte vergleichen Allgemeine Java-Themen 1
N DNA Strings vergleichen Allgemeine Java-Themen 1
Q-bert Strings aus der JList in eine Datenbank speichern Allgemeine Java-Themen 1
K Vergleich von Strings von Objekten Allgemeine Java-Themen 4
J Strings int textdokumente speicher Allgemeine Java-Themen 3
KeVoZ_ Nacheinander folgende Strings in Textdokument auf neue Zeile schreiben Allgemeine Java-Themen 6
K Strings sortieren: 2 Kritieren Allgemeine Java-Themen 5
A Vector Strings in Array splitten Allgemeine Java-Themen 6
B Wie vergleiche ich Strings in einer Liste? Allgemeine Java-Themen 5
T Strings über Bluetooth zwischen PC,µc oder Samrtphone senden und empfangen Allgemeine Java-Themen 0
N Methoden Methoden einer Klasse auf Grundlage eines Strings aufrufen Allgemeine Java-Themen 6
K Bestimmten Bereich eines Strings lesen Allgemeine Java-Themen 6
H RegularExpression zwischen zwei Strings Allgemeine Java-Themen 2
Neumi5694 Operatoren regEx für das Erstellen eines Strings verwenden Allgemeine Java-Themen 3
H Strings vergleichen Allgemeine Java-Themen 9
O Mustererkennung in Strings Allgemeine Java-Themen 4
Y String-Collection: längste gemeinsame Strings / Prefixe Allgemeine Java-Themen 3
F Problem mit Strings Allgemeine Java-Themen 8
D Strings chemisch splitten Allgemeine Java-Themen 3
K Wörter in Strings zählen Allgemeine Java-Themen 7
L Strings nach sortiertem String zurück ordnen Allgemeine Java-Themen 0
L Strings nach gleichem Muster ordnen Allgemeine Java-Themen 4
L Fragen für Facharbeit: Analyse von Strings in Java Allgemeine Java-Themen 4
D Strings vergleichen; Komma ignorieren Allgemeine Java-Themen 3
K Java Operatoren mit Strings darstellen Allgemeine Java-Themen 8
G Strings erzeugen Allgemeine Java-Themen 20
N Input/Output Vergleich von identischen Strings schlägt fehl Allgemeine Java-Themen 5
U Große Liste von Strings mit indiziertem Zugriff Allgemeine Java-Themen 31
A ,,Textformatierungsbefehle" für strings deaktivieren Allgemeine Java-Themen 8
S Strings vergleichen Allgemeine Java-Themen 11
C Strings in Excel einlesen! Allgemeine Java-Themen 2
S Strings gehen "kaputt" wenn ich in CVS ein und wieder auschecke. Allgemeine Java-Themen 2
X Datentypen Prozentualer Abgleich zwischen 2 Strings (Pattern?) Allgemeine Java-Themen 3
R MD5-Hash eines Strings bestimmen Allgemeine Java-Themen 2
C Strings und JSON Objekte so klein wie möglich im Speicher ablegen Allgemeine Java-Themen 5
J String zerlegen in einzelne Strings Allgemeine Java-Themen 7
F Konstanten mir Strings "verknuepfen" Allgemeine Java-Themen 10
1 zwei Strings vergleichen Allgemeine Java-Themen 16
L Object Instanz anhand eines Strings Allgemeine Java-Themen 10
S vector & strings Allgemeine Java-Themen 26
N Strings mit null wiedergabe Splitten Allgemeine Java-Themen 4
K Strings sortieren (knifflig) Allgemeine Java-Themen 7
P Codierung der strings umändern Allgemeine Java-Themen 10
N Zahlen in Strings einer ArrayList sortieren Allgemeine Java-Themen 14
F 2 Strings zusammenfügen Allgemeine Java-Themen 2
S Strings zu Color-Instanzen parsen? Allgemeine Java-Themen 7
C Strings zwischen 2 Zeichen auslesen Allgemeine Java-Themen 7
T Explizite Typkonversation mit Strings Allgemeine Java-Themen 9
R Locale spezifische DateFormat Strings? Allgemeine Java-Themen 3
M Wie kann ich alle System.out Strings in ein log window umleiten? Allgemeine Java-Themen 6
R Java function die Strings escaped, sodass ich sie in Javascript verwenden kann? Allgemeine Java-Themen 4
ruutaiokwu objektreferenz eines strings... Allgemeine Java-Themen 9
data89 [Kurze Frage] Ähnlichkeit zweier Strings ermitteln Allgemeine Java-Themen 19
S bestimmte Strings spliten! Allgemeine Java-Themen 7
M Warum Strings mit equals vergleichen... Allgemeine Java-Themen 6
Daniel_L Suche nach ganzen Wörtern (wholeword) in Strings? Allgemeine Java-Themen 4
A Strings joinen, Standard-Library? Allgemeine Java-Themen 9
Y Mal wieder vergleichen von Strings.[Leider noch ein Problem] Allgemeine Java-Themen 18
data89 Die Größe eines Strings in Byte berechnen? Allgemeine Java-Themen 12
A Auslesen von Strings aus einer xls-Datei Allgemeine Java-Themen 16
G Spezialfrage zu Strings Allgemeine Java-Themen 11
C Textteile aus Strings extrahieren? Allgemeine Java-Themen 6
J Teile eines Strings ersetzen Allgemeine Java-Themen 2
G schnell Strings vergleichen Allgemeine Java-Themen 4
J Name eines Strings durch einen String festlegbar? Allgemeine Java-Themen 2
G Strings zerlegen und substrings auslesen Allgemeine Java-Themen 2
Z Letztes zeichen eines strings löschen Allgemeine Java-Themen 3
V Speicherplatz eines Strings? Allgemeine Java-Themen 12
H MIDlets und Strings Allgemeine Java-Themen 2
C Pixelanzahl eines Strings ermitteln Allgemeine Java-Themen 12
T Strings darf nur Ziffern, +/- haben Allgemeine Java-Themen 9
A Fehler beim Ersetzen eines Strings Allgemeine Java-Themen 3
G Strings die Zahlen enthalten sinnvoll sortieren (A2 < A10 Allgemeine Java-Themen 4
G byte[] mit Strings füllen Allgemeine Java-Themen 2
H strings in datei verschlüsseln , auslesen mit klartext aber! Allgemeine Java-Themen 2
F Strings in JList ausrichten/links/rechts/mittig Allgemeine Java-Themen 10
M String#equals(), Probleme mit großen Strings? Allgemeine Java-Themen 4
H ein Teil des Strings rausfiltern Allgemeine Java-Themen 8
E Viele if Abfragen auf viele Strings --> Alternative zu if Allgemeine Java-Themen 8
C Strings zu groß um damit zu arbeiten Allgemeine Java-Themen 31
V Lib für Strings suchen und ersetzen (erweitert) Allgemeine Java-Themen 3
P Schnelles Auslesen von Strings für Syntaxhighlighting? Allgemeine Java-Themen 2
X Strings aus einer ArrayList zählen Allgemeine Java-Themen 11
C HASH Algorithmus 2 Strings ergeben das Selbe. Allgemeine Java-Themen 2
G Datei zeilenweise in Strings speichern Allgemeine Java-Themen 36
S Methode zum Zählen von Buchstaben in Strings gesucht Allgemeine Java-Themen 11
I vergleich und zählen von Strings Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben