2012-05-06 26 views
6

Im mã hóa trong Java ..nhận được tất cả html như một String từ HTMLDocument

Có ai biết làm thế nào tôi có thể nhận được nội dung của một javax.swing.text.html.HTMLDocument như một String? Đây là những gì tôi đã có cho đến nay ...

URL url = new URL("http://www.test.com"); 

HTMLEditorKit kit = new HTMLEditorKit(); 
HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument(); 
doc.putProperty("IgnoreCharsetDirective", Boolean.TRUE); 
Reader HTMLReader = new InputStreamReader(url.openConnection().getInputStream()); 
kit.read(HTMLReader, doc, 0); 

Tôi cần nội dung của HTMLDocument làm Chuỗi.

Ví dụ:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head><meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"> 

....... vv

Bất kỳ trợ giúp sẽ được đánh giá cao. Tôi cần phải sử dụng lớp HTMLDocument để cho html để được xử lý một cách chính xác :)

Cảm ơn Daniel

Trả lời

12
StringWriter writer = new StringWriter(); 
kit.write(writer, doc, 0, doc.getLength()); 
String s = writer.toString(); 
+0

Cảm ơn! Mã Joop Eggens đã làm các trick! – Zelleriation

1

Bạn không cần phải trình biên tập và đọc ở tất cả - chỉ cần đọc những dòng đầu vào. Ví dụ, với commons-io IOUtils.toString(inputStream)

hoặc bạn có thể sử dụng:

Content content = document.getContent(); 
String str = content.getString(0, content.length() - 1); 
+0

Điều này sẽ không hoạt động vì phương thức [getContent] (http://docs.oracle.com/javase/7/docs/api/javax/swing/text/AbstractDocument.html#getContent%28%29) được kế thừa được bảo vệ . – vallismortis

Các vấn đề liên quan