java - 如何删除 TableColumn 中的 HTML 标签

标签 java javafx

这是所发生情况的示例:

enter image description here

    previewTableColumn.setCellValueFactory(new PropertyValueFactory<>("body"));
    subjectTableColumn.setCellValueFactory(new PropertyValueFactory<>("subject"));
    dateTableColumn.setCellValueFactory(new PropertyValueFactory<>("date"));

    tableView.getItems().setAll(model.getObservableDatas());

我需要“预览”列显示没有 HTML 标签的文本,我想像这样使用 Jsoup:

    public String htmlToText(String html) {
     String preview = null;
     if (html != null) {
        Document doc = Jsoup.parse(html);
        preview = doc.body().text();
     }
     return preview;
    }

问题是我需要获取包含标签的字符串来调用此方法,该方法来自 HTMLEditor 并显示在 WebView 上,因此我只需要删除此列中的标签。 有没有办法获取字符串并在将其放入列之前将其从标签中清除?

已修复(可能以一种不好的方式)

数据类:

public class Datas implements Serializable {

private String subject;
private String date;
private String body;
private String bodyString;


 public Datas(String subject, String date, String body) {
    this.body = body; // I use this for HTMLEditor and WebView
    this.bodyString = htmlToText(body); // I use this for the TableColumn
    this.date = date;
 }
//getter and setter of everything
 public String getBodyString() {
    return bodyString;
 }

 public void setBodyString(String bodyString) {
    this.bodyString = bodyString;
 }
}

在 Controller 中

previewTableColumn.setCellValueFactory(new PropertyValueFactory<>("bodyString"));

需要修复的Bug:如果客户端向离线客户端发送数据,当离线客户端上线时会出现重复值,并且重复值没有预览。

最佳答案

类似于;

private String getPreview(String _html) {
   String preview = null;
   if (_html != null) {
      Document doc = Jsoup.parse(_html);
      preview = doc.body().text();
   }
   return preview;
}

来源:https://jsoup.org/cookbook/extracting-data/attributes-text-html

关于java - 如何删除 TableColumn 中的 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55455621/

相关文章:

Java BigInteger 与 Mono .net BigInteger

java - 有没有使用JAVA管理VisualSVN服务器的API

java - 如何改进我的junit测试

java - 如何在Eclipse中实现这样的格式化?

Java模拟函数来改变它的行为

java - 尝试运行 javafx 应用程序时出现 "FXMLLoader.constructLoadException"

java - 公共(public)类中的嵌套 JavaFX Controller

JavaFX 8 QuantumRenderer 高 CPU 使用率

java - 将 JavaFX ContextMenu 置于屏幕中央?

JavaFx 按钮设置文本与计时器任务