【发布时间】:2020-03-21 03:16:04
【问题描述】:
现在,我在Java Swing 中有一个JTextPane,它将文件中的内容加载到窗格中。但是,它会加载包括所有标签在内的所有内容。我希望它只加载内容。有没有办法获取标签并加载<body> 和</body> 之间的部分?
这里是代码
public class LoadContent {
String path = "../WordProcessor_MadeInSwing/backups/testDir/cool_COPY3.rtf";
public void load(JTextPane jTextPane){
try {
FileReader fr = new FileReader(path);
BufferedReader reader = new BufferedReader(fr);
jTextPane.read(reader, path);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
catch(IOException e){
}
}
}
如果我的.rtf 文件包含“这是一个测试”一词,它将加载为:
<html>
<head>
<style>
<!--
p.default {
family:Dialog;
size:3;
bold:normal;
italic:;
foreground:#333333;
}
-->
</style>
</head>
<body>
<p class=default>
<span style="color: #333333; font-size: 12pt; font-family: Dialog">
Here is a test
</span>
</p>
</body>
</html>
我只希望它加载“这是一个测试”
【问题讨论】:
-
我所知道的 Swing API 中没有任何东西可以做你想做的事。由于您正在处理 HTML,我认为 HTML 解析器是您提取所需 HTML 文本部分所需要的。 jsoup 是一个 java HTML 解析器。
标签: java swing jtextpane reader