java - 如何加载 html 到 styledocument

标签 java html parsing htmleditorkit

我正在使用 StyleDocument 在 JTextPane 中显示我的内容。 我搜索了一会儿,发现我可以使用 HTMLEditorKit 将从文本 Pane 中获取的文档写入文件。但是当我想用 HTMLEditorKit 读取这个文件时,它没有在正确的文档中解析。我得到两个不同的结果:

  1. 我在我的文本面板中得到纯 html 代码
  2. 我的文本 Pane 中没有内容

保存:

Document doc = textpane.getStyledDocument();
HTMLEditorKit kit = new HTMLEditorKit();
kit.write(new FileOutputStream("path"), doc, 0, doc.getLength());

正在加载(2 个版本):

HTMLEditorKit kit = new HTMLEditorKit();
Document doc = null;
Document doc2 = kit.createDefaultDocument();

kit.read(new FileInputStream("path"), doc, 0);
kit.read(new FileInputStream("path"), doc2, 0);

textpane.setDocument(doc);
textpane.setDocument(doc2);

最佳答案

当您初始化 JTextPane 时,添加以下行:textpane.setContentType("text/html");

Saving 更改为如下所示:

Document document = textpane.getStyledDocument();
EditorKit kit = textpane.getEditorKit();
kit.write(new FileOutputStream(new File("path")), doc, 0, doc.getLength());

Loading 更改为如下所示:

EditorKit kit = pane2.getEditorKit();
Document doc = kit.createDefaultDocument();
kit.read(new FileInputStream(new File("path")), doc, 0);
textpane.setDocument(doc);

在我的测试环境中使用此设置,我能够将 JTextPane 中的文本设置为一些 html,从 Pane 中获取 html,将其写入文件,然后从中读回同一个文件。我没有看到任何使用 HTMLEditorKit 的理由,因为您没有做任何特定于 html 的事情,但是您可以根据需要进行更改。

关于java - 如何加载 html 到 styledocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15418439/

相关文章:

c++ - 将包含数字的字符串解析为整数数组

java - 如何连接到具有不同 IP 地址的网站?

java - 如何使 JTextField 输入在其他类中可访问

Java HTML解析NullpointerException

html - 浏览器不选择 CSS 类

html - z-index 和 CSS 旋转

c++ - 二进制解析器还是序列化?

java - 去除无效 XML 字符的转义序列

java - 将 Outlook 电子邮件复制到文件夹或通过 javamail 阅读电子邮件?

javascript - 自定义弹出消息呈现但按钮不起作用?