从HTML字符串创建HTMLDocument(在Java中)

时间:2011-07-14 18:20:19

标签: java html string dom

我正在研究一种采用HTML字符串并返回类似

的方法
 javax.swing.text.html.HTMLDocument

最有效的方法是什么?

我目前正在这样做的方法是使用SAX解析器来解析HTML字符串。我记录何时点击打开的标签(例如,< i>)。当我点击相应的关闭标记(例如,< / i>)时,我会将斜体样式应用于我在其间插入的字符。

这肯定有效,但速度不够快。有没有更快的方法呢?

3 个答案:

答案 0 :(得分:8)

同意mouser但只是一个小小的修正

Reader stringReader = new StringReader(string);
HTMLEditorKit htmlKit = new HTMLEditorKit();
HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument();
htmlKit.read(stringReader, htmlDoc, 0);

答案 1 :(得分:4)

尝试使用HtmlEditorKit课程。它支持解析可以直接从String读取的HTML内容(例如通过StringReader)。 There seems to be an article关于如何做到这一点。

编辑:举个例子,基本上我认为可以这样做(执行代码后,htmlDoc应该包含加载的文档......):

Reader stringReader = new StringReader(string);
HTMLEditorKit htmlKit = new HTMLEditorKit();
HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument();
HTMLEditorKit.Parser parser = new ParserDelegator();
parser.parse(stringReader, htmlDoc.getReader(0), true);

答案 2 :(得分:0)

您可以尝试使用HTMLDocument.setOuterHTML方法。只需添加一个随机元素,然后用HTML字符串替换它。