Tags und Taginhalt aus gestreamten HTML-Code auslesen

wolfclaw

Grünschnabel
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:
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
 
Warum auch selber das mit RegEx machen wenns im JDK schon Lösungen dafür gibt?

Java:
		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.
 
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
 
Zurück