8

我用Java编码..

有谁知道我如何将 javax.swing.text.html.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 的内容作为字符串。

例子:

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

....... ETC。

任何帮助,将不胜感激。我需要使用 HTMLDocument 类才能正确处理 html :)

谢谢丹尼尔

4

2 回答 2

17
StringWriter writer = new StringWriter();
kit.write(writer, doc, 0, doc.getLength());
String s = writer.toString();
于 2012-05-06T16:25:24.920 回答
1

您根本不需要编辑器和阅读器 - 只需阅读输入流。例如,使用 commons-ioIOUtils.toString(inputStream)

或者您可以使用:

Content content = document.getContent();
String str = content.getString(0, content.length() - 1);
于 2012-05-06T16:26:04.007 回答