# Tags und Taginhalt aus gestreamten HTML-Code auslesen



## wolfclaw (31. März 2007)

Guten Abend!

Ich habe folgende Frage... Ich will eine "zugestreamte" Website auslesen und gewisse Tags herausfiltern (mittels regex, wenn möglich). Folgender Thread beschreibt das Ganze schon ganz gut: 

http://www.tutorials.de/forum/java/...n-zugestreamte-html-quelltexte-auswerten.html

Folgender Code: 

```
String line;
Matcher matcher

while ((line = br.readLine()) != null) {
        matcher = PATTERN_TEXT.matcher(line);
        if (matcher.matches())
            System.out.println("Filtertext: " + line);
}
```

funktioniert ganz gut, ABER leider nur, wenn der zu findende Tag-Bereich in einer Zeile steht. Wenn ich zB ein

<tr>
ich bin eine zeile
<tr>

auslesen möchte, würde das nicht klappen. Wie würdet ihr das machen, wenn eben solche Bereiche auch ausgelesen werden sollen können?

Vielen Dank im Vorhinein

Gruß, Wolfclaw


----------



## zeja (1. April 2007)

Warum auch selber das mit RegEx machen wenns im JDK schon Lösungen dafür gibt?


```
URL url = new URL("http://www.tutorials.de");
		URLConnection connection = url.openConnection( );
		InputStream is = connection.getInputStream( );
		InputStreamReader isr = new InputStreamReader(is);
		BufferedReader br = new BufferedReader(isr);

		HTMLEditorKit htmlKit = new HTMLEditorKit( );
		HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument( );
		HTMLEditorKit.Parser parser = new ParserDelegator( );
		HTMLEditorKit.ParserCallback callback = htmlDoc.getReader(0);
		parser.parse(br, callback, true);
```

So kann man ein HTMLDocument laden und auf dem HTMLDocument kommt man an dessen Elemente und Attribute etc ran, ähnlich wie bei XML Dokumenten.


----------



## Thomas Darimont (1. April 2007)

Hallo,

schau mal hier:
http://www.tutorials.de/forum/java/202949-alle-links-eines-html-dokuments-extrahieren.html

Gruß Tom


----------



## wolfclaw (1. April 2007)

Vielen Dank Tom und zeja, das ist genau das, was ich suche!


----------



## web_007 (16. Dezember 2009)

Hallo,

ich habe auf der Basis vom obigen Quelltext versucht HTML Tags aus einer Testdatei zu lesen. Leider bekomme ich immer eine NullPointerException wenn ich nach tag div und attribut id suche.

mein quelltext:
		BufferedReader br = new BufferedReader(new FileReader("test.php"));

		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.DIV);
		iter.isValid();
		while (iter.isValid()) {
			System.out.println(iter.getAttributes().getAttribute(HTML.Attribute.ID));
			iter.next();
		}


das testdoc test.php:
<div id="test">17</div>
<a href="seite.php">Link</a>

was läuft da falsch


----------

