Java 我在哪里可以找到一个好的HTMLEditorKit教程/参考,它实际上解释了如何编辑HTML文档?
我的意图是编辑HTML文档,包括修改现有元素、删除元素和插入新元素 我已经阅读了HTMLEditorKit和相关类的文档,以及Sun Java Trail中的相关主题,但是关于实际HTML文档操作的信息很少。大多数讨论和示例都涉及阅读和解析HTML,而不是真正编辑HTML。一些谷歌搜索仍然没有给出一个适当的解决方案,并且试图通过一些编码尝试和错误来处理这项任务,大部分都会导致异常 我已经在SO中讨论了相关的问题和答案,但大多数答案都提出了一些替代方案,而我正在寻找JDK中的解决方案。也许HTMLEditorKit对非swing应用程序用处不大,在javax.swing之外还有其他选择吗 以下是我想学习如何执行的几个任务:Java 我在哪里可以找到一个好的HTMLEditorKit教程/参考,它实际上解释了如何编辑HTML文档?,java,html,swing,htmleditorkit,Java,Html,Swing,Htmleditorkit,我的意图是编辑HTML文档,包括修改现有元素、删除元素和插入新元素 我已经阅读了HTMLEditorKit和相关类的文档,以及Sun Java Trail中的相关主题,但是关于实际HTML文档操作的信息很少。大多数讨论和示例都涉及阅读和解析HTML,而不是真正编辑HTML。一些谷歌搜索仍然没有给出一个适当的解决方案,并且试图通过一些编码尝试和错误来处理这项任务,大部分都会导致异常 我已经在SO中讨论了相关的问题和答案,但大多数答案都提出了一些替代方案,而我正在寻找JDK中的解决方案。也许HTML
- 替换某些文本字段中的文本
- 基本编辑(查找/替换或
元素的正则表达式 - 为某些元素的边框着色
- 完全移除某些标签(用于 示例闪存元件)
假设HTMLEditorKit是JDK中最好的HTML编辑组件,您推荐什么教程或参考资料?HTMLEditorKit不是一个HTML编辑器,而是一个文档模型编辑器,它允许将这些文档模型从HTML转换为HTML。编辑器工具包的内部模型不是“HTML”,而是基于
DefaultStyledDocument
。让您困惑的是,有一个HTMLDocument
类。但这只是DefaultStyledDocument
的一个薄包装,因此它可以从HTML创建并保存为HTML
您需要的是一个HTML解析器。尝试它将读取HTML,构建一个内部模型(保留
之类的内容,而HTMLEditorKit
将忽略这些内容)。然后可以使用domapi修改模型
也就是说,对于许多用例来说,用正则表达式或简单的字符串搜索和替换过滤HTML就足够了。我不知道您的情况,但我认为如果您试图操作的HTML页面不是很复杂,那么您可以像这样自己构建它:
HTMLDocument doc = new HTMLDocument();
HTMLEditorKit kit = new HTMLEditorKit();
jEditorPane.setDocument(doc);
jEditorPane.setEditorKit(kit);
kit.insertHTML(doc, doc.getLength(), "<label> This label will be inserted inside the body directly </label>", 0, 0, null);
kit.insertHTML(doc, doc.getLength(), "<br/>", 0, 0, null);
kit.insertHTML(doc, doc.getLength(), putYourVariableHere, 0, 0, null);
HTMLDocument doc=新的HTMLDocument();
HTMLEditorKit=新的HTMLEditorKit();
jEditorPane.setDocument(doc);
jEditorPane.setEditorKit(工具包);
kit.insertHTML(doc,doc.getLength(),“此标签将直接插入正文内部”,0,0,null);
insertHTML(doc,doc.getLength(),“
”,0,0,null);
insertHTML(doc,doc.getLength(),putYourVariableHere,0,0,null);
通过这种方式,您可以完全控制html,而且加载速度比从外部html加载要快。我不知道是否有任何教程介绍如何使用
HTMLDocument
和HTMLEditorKit
在Java中编辑html文档。JDK实现有些有限,但在内部它创建了一个类似于DOM的元素树。您可以使用以下方法从HTMLDocument访问树:
这里的doc
是HTMLDocument
的一个实例。我认为使用HTMLDocument
编辑HTML并不容易,但这是可能的,请参阅以下方法:
HTMLDocument
模型操作加载到JEditorPane
中的HTML内容的非常简单的示例,请参见的答案,特别是propertyChange
偶数处理程序的代码
尽管为了更好地控制HTML,我还是建议使用一个创建HTML DOM并允许修改它的库。您是在创建可视化编辑器还是可以在内存中编辑HTML结构?太糟糕了,我希望JDK中有一个解决方案。我试图避免外部工具,所以我首先考虑一个查找/替换解决方案。谢谢
HTMLDocument
实际上包含一个类似于DOM的树。它的设计目的是保留它不理解的所有内容,但如果您有标签,它不会删除标签。
Element html = doc.getRootElements()[0];