使用java程序更新HTML文件

问题描述 投票:0回答:1

我试图每小时获得一个项目状态和电子邮件(Html格式)以及过去4小时的数据。我没有db来存储那些过去的值,所以我计划将它们存储在HTML文件本身中。

我有代码将html文件内容作为字符串获取,但我需要帮助删除HTML表格中最底部的行并将新值附加到第一行,因为我只需要发送过去5小时的报告。因此,虽然发送下午7点报告<tr><td>19-Mar 7.00 PM</td> <td>4</td> <td>31</td> <td>50181</td> <td>555</td></tr>应添加在<!--$NewRow to be inserted here$-->地方的代码和<!--$ToBeRemoved_Start$-->and qazxswpo之间的文本应删除。

我也知道它可以通过获取注释标记的索引值并在html中使用replace,append,concatenate来实现,但是我需要知道是否有一种简单的方法可以使用像jsoup等一些lib来实现它。 。 请让我知道你的想法。

<!--$ToBeRemoved_End$-->

HtmlCodeBelow:

public String getHTML_String() {
    StringBuilder contentBuilder = new StringBuilder();
    try {
        BufferedReader in = new BufferedReader(new FileReader("emailOutput.html"));
        String str;
        while ((str = in.readLine()) != null) {
            contentBuilder.append(str);
        }
        in.close();
    } catch (IOException e) {
    }
    return contentBuilder.toString();

}
java html html5 dom jsoup
1个回答
2
投票

使用JSoup实现这一点非常简单,因为:

  1. 您是HTML内容的所有者,因此您知道它们是什么。
  2. 内容将始终具有相同的结构。

可以使用以下代码来完成它。为清晰起见,添加了评

<!DOCTYPE html>
<html>

<head>
  <meta charset="ISO-8859-1">
  <title>Api Report</title>
  <style>
    table {
      font-family: arial, sans-serif;
      border-collapse: collapse;
      width: 100%;
    }
    
    td,
    th {
      border: 1px solid #dddddd;
      text-align: left;
      padding: 8px;
    }
    
    tr:nth-child(even) {
      background-color: #dddddd;
    }
  </style>
</head>

<body>
  <h2>Content Api</h2>
  <table>
    <tr>
      <th>Date Time</th>
      <th>Col1</th>
      <th>Col2</th>
      <th>Col3</th>
      <th>Col4</th>
    </tr>
    <!--$NewRow to be inserted here$-->
    <tr>
      <td>19-Mar 6.00 PM</td>
      <td>1.22%</td>
      <td>24.75%</td>
      <td>4.71 ms</td>
      <td>7.67</td>
    </tr>
    <tr>
      <td>19-Mar 5.00 PM</td>
      <td>1.22%</td>
      <td>24.75%</td>
      <td>4.71 ms</td>
      <td>8.67</td>
    </tr>
    <tr>
      <td>19-Mar 4.00 PM</td>
      <td>1.22%</td>
      <td>24.75%</td>
      <td>4.71 ms</td>
      <td>7.67</td>
    </tr>
    <tr>
      <td>19-Mar 3.00 PM</td>
      <td>1.22%</td>
      <td>24.75%</td>
      <td>4.71 ms</td>
      <td>7.67</td>
    </tr>
    <!--$ToBeRemoved_Start$-->
    <tr>
      <td>19-Mar 2.00 PM</td>
      <td>1.22%</td>
      <td>24.75%</td>
      <td>4.71 ms</td>
      <td>7.67</td>
    </tr>
    <!--$ToBeRemoved_End$-->
  </table>
</body>

</html>
© www.soinside.com 2019 - 2024. All rights reserved.