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

Pau*_*ers 6 html java string dom

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

 javax.swing.text.html.HTMLDocument
Run Code Online (Sandbox Code Playgroud)

这样做最有效的方法是什么?

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

这当然有效,但速度不够快.有更快的方法吗?

Sta*_*avL 8

同意mouser,但一个小的修正

Reader stringReader = new StringReader(string);
HTMLEditorKit htmlKit = new HTMLEditorKit();
HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument();
htmlKit.read(stringReader, htmlDoc, 0);
Run Code Online (Sandbox Code Playgroud)


mou*_*ser 4

尝试使用HtmlEditorKit类。它支持解析可直接读取的 HTML 内容String(例如通过StringReader)。似乎有一篇文章介绍了如何做到这一点。

编辑:举个例子,基本上我认为可以这样做(执行代码后,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);
Run Code Online (Sandbox Code Playgroud)