我正在研究一种采用HTML字符串并返回类似
的方法 javax.swing.text.html.HTMLDocument
最有效的方法是什么?
我目前正在这样做的方法是使用SAX解析器来解析HTML字符串。我记录何时点击打开的标签(例如,< i>)。当我点击相应的关闭标记(例如,< / i>)时,我会将斜体样式应用于我在其间插入的字符。
这肯定有效,但速度不够快。有没有更快的方法呢?
答案 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字符串替换它。