Ich brauche Hilfe bei HTMLEditorKit

kirilvalev

Grünschnabel
Hallo. Ist mein erster post und ich freu mich hier Mitglied sein zu dürfen!
Ich habe die gleiche Frage auch in diesem java forum gepostet.

Haut aber iwie nicht hin. Ist auch verständlich, weil mir noch keiner geantwortet hat...

Also:

Code:
BufferedReader br = new BufferedReader(
				new InputStreamReader(
						(new URL("http://www.irgendEineSeite.de")
						.openConnection())
						.getInputStream()));

		HTMLEditorKit editor = new HTMLEditorKit();
		HTMLDocument doc = new HTMLDocument();
		doc.putProperty("IgnoreCharsetDirective", Boolean.TRUE);
		editor.read(br, doc, 0);

Soweit, sogut.

Ich hab in diesem Forum gelesen wie alles funktioniert mit dem HTMLEditorKit. Ich habe auch hier gelesen wie man mit einem Iterator alle links aus dem HTMLDocument herausfilter. Und genau dort liegt mein Problem.
http://www.tutorials.de/forum/java/202949-alle-links-eines-html-dokuments-extrahieren.html wird beschrieben wie man alle
Code:
<a href=...
rausfiltern kann. Ich brauche aber folgendes:
Code:
<span class=ngrn> www.uni-haifa.de/pdf/haifa_2_05.pdf </span>
Ich will den link innerhalb der tags haben. Wenn ich die oben erwähnte Methode benutzte dann krieg ich
Code:
ngrn
zurück. Ich hab auch schon sehr viel gegooglet und alle möglichen foren durchgelesen, aber iwie hauts einfach nicht hin :(
 
Zuletzt bearbeitet:
Hi kirilvalev,

mit iter.getStartOffset() und iter.getEndOffset() erhältst Du die Start- bzw. Endposition des Inhaltes des Tags.

Code:
HTMLEditorKit editorKit = new HTMLEditorKit();
		HTMLDocument htmlDoc = new HTMLDocument();
		htmlDoc.putProperty("IgnoreCharsetDirective", Boolean.TRUE);
		editorKit.read(br, htmlDoc, 0);

		HTMLDocument.Iterator iter = htmlDoc.getIterator(HTML.Tag.SPAN);
		while (iter.isValid()) {
			for (Enumeration e = iter.getAttributes().getAttributeNames()  ; e.hasMoreElements() ;) {
		         HTML.Attribute attrib = (HTML.Attribute) e.nextElement();
		     }
			if(iter.getAttributes().getAttribute(HTML.Attribute.CLASS).equals("ngrn")){
			    int length = iter.getEndOffset() - iter.getStartOffset();
			    String text = htmlDoc.getText(iter.getStartOffset(), length);
			    System.out.println(text);
			}
			iter.next();
		}

Hoffe das beantwortet Deine Frage.

Gruß
joschi
 
Zurück