2012-05-06 1 views
6

자바 임 코딩에서 문자열 .. 모든 HTML을 얻을? 이것은 내가 지금까지 가지고있는 것입니다 ...내가 문자열로 javax.swing.text.html.HTMLDocument의 내용을 얻을 수있는 방법</p> <p>사람이 알고 있나요 HTMLDocument의

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); 

나는 HTMLDocument의 내용을 String으로 필요로합니다.

예 :

<!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"> 
....... 등

어떤 도움을 주시면 감사하겠습니다. 바로 입력 스트림을 읽기 - html로 올바르게 처리 할 수 ​​있도록 :)

감사 다니엘

답변

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

감사합니다! Joop Eggens 코드가 트릭을했습니다! – Zelleriation

1

당신은 모든 에디터와 독자가 필요하지 않습니다을 나는 위해 HTMLDocument의 클래스를 사용해야합니다. 예를 들어, 공유지-IO IOUtils.toString(inputStream)

또는 사용할 수와 :

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

상속 된 [getContent] (http://docs.oracle.com/javase/7/docs/api/javax/swing/text/AbstractDocument.html#getContent%28%29) 메서드가 보호되므로이 작업이 수행되지 않습니다. . – vallismortis

관련 문제