Java实现对Html文本的处理

 1.引入jsoup

<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.8.3</version>
</dependency>

2. html示例

示例代码: 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>      <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title>个人信用报告</title><style media=print>.Noprint {            display: none;        }    </style><style type="text/css">body{            background: #FFFFFF;        }        table {            border-collapse: collapse;            border: 0;            width: 70%;        }        td {            border: #000000 solid 1px;            padding: 4px;            font-size: 13px;            text-align: center;        }        .thead {            background: #FFFFFF;            font-weight: bold;        }        a{            position: relative;            z-index: 1;        }        #side-nav {            position: fixed;            _position: absolute;            top: 10px;            right: 10px;            border: 1px black solid;            width: 14%;            z-index: 1;        }        .nav-style {            border-style: none;            font-size: 13px;            font-weight: bold;            background: #FFFFFF;        }        .report-title {            border-style: none;            font-size: 24px;            font-weight: bold;            text-align: center;        }        .title-style1 {            border-style: none;            font-size: 21px;            font-weight: bold;            text-align: center;        }        .title-style2 {            border-style: none;            font-size: 15px;            font-weight: bold;            text-align: center;        }        .title-style3 {            font-size: 13px;            font-weight: bold;            text-align: center;        }        .td-no-border {            border-style: none;        }        .table-tips {            font-style: italic;            font-size: 10px;            text-align: left;        }        .td-no-report {            border: #FFF solid 0px;            font-size: 22px;            font-weight: bold;        }        .watermark {            position: fixed;            background: no-repeat center;            transform: rotate(-30deg);            filter: alpha(opacity=20);            opacity: .20;        }    </style>
</head><body><div id="side-nav" class="Noprint"><table align="center"><tr><td class="nav-style" align="center"><a href="#Header">报告头</a></td>
</tr><tr><td class="nav-style" align="center"><a href="#PersonalInfo">个人基本信息</a></td>
</tr><tr><td class="nav-style" align="center"><a href="#InfoSummary">信息概要</a></td>
</tr><tr><td class="nav-style" align="center"><a href="#CreditDetail">信贷交易信息明细</a></td>
</tr><tr><td class="nav-style" align="center"><a href="#QueryRecord">查询记录</a></td>
</tr>
</table>
</div><div align='center' class='watermark' style='top:15%;'><font size='5px' color='gray'>test99</font><br/><font size='5px' color='gray'>1</font><font size='5px' color='gray'>20231030155315</font>
</div><div align='center' class='watermark' style='top:15%;left:33%'><font size='5px' color='gray'>test99</font><br/><font size='5px' color='gray'>1</font><font size='5px' color='gray'>20231030155315</font>
</div><div align='center' class='watermark' style='top:15%;left:66%'><font size='5px' color='gray'>test99</font><br/><font size='5px' color='gray'>1</font><font size='5px' color='gray'>20231030155315</font>
</div><div align='center' class='watermark' style='top:50%;'><font size='5px' color='gray'>test99</font><br/><font size='5px' color='gray'>1</font><font size='5px' color='gray'>20231030155315</font>
</div><div align='center' class='watermark' style='top:50%;left:33%'><font size='5px' color='gray'>test99</font><br/><font size='5px' color='gray'>1</font><font size='5px' color='gray'>20231030155315</font>
</div><div align='center' class='watermark' style='top:50%;left:66%'><font size='5px' color='gray'>test99</font><br/><font size='5px' color='gray'>1</font><font size='5px' color='gray'>20231030155315</font>
</div><div align='center' class='watermark' style='top:85%;'><font size='5px' color='gray'>test99</font><br/><font size='5px' color='gray'>1</font><font size='5px' color='gray'>20231030155315</font>
</div><div align='center' class='watermark' style='top:85%;left:33%'><font size='5px' color='gray'>test99</font><br/><font size='5px' color='gray'>1</font><font size='5px' color='gray'>20231030155315</font>
</div><div align='center' class='watermark' style='top:85%;left:66%'><font size='5px' color='gray'>test99</font><br/><font size='5px' color='gray'>1</font><font size='5px' color='gray'>20231030155315</font>
</div><div><div class="report-title" style="margin-top: 15px;">个人信用报告</div><div class="title-style2" style="margin-top: 8px;">(授信机构版)</div>
</div><div id="Header"><table align="center"><tr><td class="td-no-border" style="text-align:left">报告编号:2023100117121647378010</td><td class="td-no-border" style="text-align:right">报告时间:2023-10-23 17:18:16</td>
</tr>
</table><table align="center"><tr class="thead"><td>被查询者姓名</td><td>被查询者证件类型</td><td>被查询者证件号码</td><td>查询机构</td><td>查询原因</td>
</tr><tr><td>杨晴晴</td><td>身份证</td><td>32082719901102604X</td><td>1            </td><td>贷后管理</td>
</tr>
</table><br/></div><div id="PersonalInfo"><div class="title-style1">一&nbsp;个人基本信息</div><br/><div class="title-style2">(一)身份信息</div><table align="center"><tr class="thead"><td>性别</td><td>出生日期</td><td>婚姻状况</td><td>学历</td><td>学位</td><td>就业状况</td><td>国籍</td><td>电子邮箱</td>
</tr><tr><td>男</td><td>1980-06-30</td><td>--</td><td>初中及以下</td><td>--</td><td>在职</td><td>中国</td><td>1309867680@qq.com</td>
</tr><tr class="thead"><td colspan="5">通讯地址</td><td colspan="3">户籍地址</td>
</tr><tr><td colspan="5">福建省福州市平潭县苏澳镇斗魁村斗魁58号</td><td colspan="3">--</td>
</tr><tr class="thead"><td>编号</td><td colspan="4">手机号码</td><td colspan="3">信息更新日期</td>
</tr><tr><td>1</td><td colspan="4">18855583001</td><td colspan="3">2019-07-18</td>
</tr><tr><td>2</td><td colspan="4">18855583002</td><td colspan="3">2019-06-25</td>
</tr><tr><td>3</td><td colspan="4">18855583003</td><td colspan="3">2019-04-26</td>
</tr><tr><td>4</td><td colspan="4">18855583004</td><td colspan="3">2019-01-26</td>
</tr><tr><td>5</td><td colspan="4">15105055999</td><td colspan="3">2018-11-14</td>
</tr><tr><td>6</td><td colspan="4">13023801517</td><td colspan="3">2018-09-11</td>
</tr><tr><td>7</td><td colspan="4">18250182015</td><td colspan="3">2017-09-07</td>
</tr><tr><td>8</td><td colspan="4">015105055999</td><td colspan="3">2017-06-29</td>
</tr>
</table><br/><div class="title-style2">(二)居住信息</div><table align="center"><tr class="thead"><td>编号</td><td>居住地址</td><td>住宅电话</td><td>居住状况</td><td>信息更新日期</td>
</tr><tr><td>1</td><td>地址1</td><td>--</td><td>未知</td><td>2019-07-18</td>
</tr><tr><td>2</td><td>地址2</td><td>--</td><td>未知</td><td>2019-06-25</td>
</tr><tr><td>3</td><td>地址3</td><td>--</td><td>未知</td><td>2019-04-26</td>
</tr><tr><td>4</td><td>地址4</td><td>--</td><td>未知</td><td>2019-01-26</td>
</tr><tr><td>5</td><td>--</td><td>--</td><td>未知</td><td>2018-11-14</td>
</tr><tr><td>6</td><td>福建省福州市平潭县苏澳镇斗魁村斗魁58号</td><td>--</td><td>未知</td><td>2018-10-18</td>
</tr><tr><td>7</td><td>福建省福州市平潭县苏沃镇斗魁村斗魁58号</td><td>0591-23106098</td><td>其他</td><td>2018-06-09</td>
</tr><tr><td>8</td><td>福州市</td><td>--</td><td>未知</td><td>2018-05-24</td>
</tr><tr><td>9</td><td>福建省福州市仓山区金山融信西班牙8—102</td><td>--</td><td>亲属楼宇</td><td>2017-09-25</td>
</tr>
</table><br/></div><br/><div align="center" class="Noprint"><hr align="center" width="70%" size="1" noshade=""/><input type="button" value="打印信用报告" onclick="javascript:printPage();"/><br/></div><br/><br/><script type="text/javascript">    window.onload=function() {        //禁止复制        document.oncopy = function () {            return false;        };        //禁止粘贴        document.onpaste = function () {            return false;        };        //禁止剪切        document.oncut = function () {            return false;        };        //禁止右键菜单        document.oncontextmenu = function () {            return false;        };        //禁止文本选择        document.onselectstart = function () {            return false;        };    };</script></body>
</html>

3.java代码实现

比如说我们想删掉某一个div  可以根据div的id class等进行操作处理

    public static void main(String[] args) throws IOException {String filePath = "/Users/xxxx/Downloads/a.html";File file = new File(filePath);// 解析HTML文本Document document = Jsoup.parse(file, "UTF-8");// 选择要移除的div元素(可以根据id、class或其他属性来选择)Elements divsToRemove = document.select("div#Header");Element table = divsToRemove.select("table").get(1);if (table != null) {Element rowToDelete = table.select("tr").get(0); // 获取第一行(索引从0开始)Element rowToDelete2 = table.select("tr").get(1); // 获取第二行(索引从0开始)// 删除表格行rowToDelete.remove();rowToDelete2.remove();}Elements divsToRemove2 = document.select("div#PersonalInfo");divsToRemove2.remove();// 输出更新后的HTML文本String updatedHtml = document.outerHtml();System.out.println(updatedHtml);}

根据class删除代码示例:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;public class RemoveDivsByClass {public static void main(String[] args) {// 输入的HTML文本String htmlText = "<html><body><div id=\"content\"><div class=\"delete-me\"><p>子元素1</p></div><div class=\"keep-me\"><p>子元素2</p></div><div class=\"delete-me\"><p>子元素3</p></div></div></body></html>";// 解析HTML文本Document document = Jsoup.parse(htmlText);// 查找特定的<div>元素(这里使用id="content"作为示例)Element divElement = document.select("div#content").first();if (divElement != null) {// 查找包含特定class属性值的子<div>元素并删除Elements divsToDelete = divElement.select("div.delete-me");divsToDelete.remove();}// 输出更新后的HTML文本String updatedHtml = document.outerHtml();System.out.println(updatedHtml);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/129920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】 man命令使用

介绍 man命令是Linux下最核心的命令之一。而man命令也并不是英文单词“man”的意思&#xff0c;它是单词manual的缩写&#xff0c;即使用手册的意思。 man命令会列出一份完整的说明。 其内容包括命令语法、各选项的意义及相关命令 。更为强大的是&#xff0c;不仅可以查看Lin…

Kali Linux:网络与安全专家的终极武器

文章目录 一、Kali Linux 简介二、Kali Linux 的优势三、使用 Kali Linux 进行安全任务推荐阅读 ——《Kali Linux高级渗透测试》适读人群内容简介作者简介目录 Kali Linux&#xff1a;网络与安全专家的终极武器 Kali Linux&#xff0c;对于许多网络和安全专业人士来说&#x…

InetAddress.getLocalHost() 执行非常慢

昨天同事反馈网关的请求非常慢&#xff0c;一个获取的token的接口响应都超过了30s&#xff0c;还好只是测试环境。 经过验证&#xff0c;几乎所有接口响应都很慢&#xff0c;很多都响应超时。 排查步骤&#xff1a; 0. 本地启动项目测试&#xff0c;没有这个问题。而且生产环…

Python基础之列表、元组和字典

一文拿捏Python基本数据类型“列表、数组和字典” 引言 Python中的 列表(英文叫list) 、 元组(英文叫tuple)和字典&#xff08;dictionary&#xff09; 也是 序列 特性的&#xff0c;它们也是非常常用的数据类型。 1、列表&#xff08;List&#xff09; 01、概述 列表&#…

【Ubuntu】虚拟机安装系统与初始化配置

一、安装ubuntu系统 1、首先在虚拟机上安装一个虚拟机系统。 简单操作忽略&#xff0c;只贴出与安装linux不同的地方。 内存&#xff0c;处理器&#xff0c;磁盘等什么自己看着需要自己增加们这边不做过多说明。一直下一步&#xff0c;然后就安装好了。2、选择镜像位置然后启…

华为RS设备状态及接口配置命令

1、查看硬件信息 ①查看序列号 查看整机序列号 display esn display sn ②、查看功率 电源功率 display power 查看光模块功率 display transceiver interface gigabitethernet 1/0/0 verbose ③、查看风扇 display fan ④、查看温度 display temperature all ⑤、查看硬…

【MySQL】索引(下)

文章目录 1. 普通索引2. 索引操作创建主键索引查询索引删除索引唯一索引的创建删除唯一键索引普通索引的创建全文索引 1. 普通索引 MySQL除了会默认建立主键索引&#xff0c;也可能会按照其他列信息建立的索引&#xff0c;一般这种索引称为 普通索引 对于 储存引擎 myisam&…

伊朗网络间谍组织针对中东金融和政府部门

导语 近日&#xff0c;以色列网络安全公司Check Point与Sygnia发现了一起针对中东金融、政府、军事和电信部门的网络间谍活动。这一活动由伊朗国家情报和安全部门&#xff08;MOIS&#xff09;支持的威胁行为者发起&#xff0c;被称为"Scarred Manticore"。该组织被认…

在Linux上通过NTLM认证连接到AD服务器(未完结)

这篇文章目前还没有实现具体的功能&#xff0c;只实现了明文登录&#xff0c;因为我缺少一些数据&#xff0c;比如通过密码生成hash&#xff0c;以及通过challenge生成response&#xff0c;我不知道怎么实现&#xff0c;因此这篇文章也是一个交流的文章&#xff0c;希望大佬看见…

【实战Flask API项目指南】之一 概述

实战Flask API项目指南之 概述 本系列文章将带你深入探索实战Flask API项目指南&#xff0c;通过跟随小菜的学习之旅&#xff0c;你将逐步掌握Flask在实际项目中的应用。让我们一起踏上这个精彩的学习之旅吧&#xff01; 前言 小菜是一个Python编程爱好者&#xff0c;他目前…

蓝桥杯 (C++ 求和 等差数列 顺子日期 灌溉)

目录 1、求和 题目&#xff1a; 思路&#xff1a; 代码&#xff1a; 2、等差数列 题目&#xff1a; 思路&#xff1a; 代码&#xff1a; 3、顺子日期 题目&#xff1a; 思路&#xff1a; 代码&#xff1a; 4、灌溉 题目&#xff1a; 代码&#xff1a; 1、求和…

KaiwuDB 内核解析 - SQL 查询的生命周期

一、概述 KaiwuDB 内核解析系列共分上下两部分&#xff0c;本文是该系列的第一部分&#xff0c;主要涵盖了网络协议到 SQL 执行器&#xff0c;解释 KaiwuDB 如何执行 SQL 查询&#xff0c;包括系统各个组件的执行路径&#xff08;网络协议、SQL 会话管理、解析器、执行计划及优…

【Spring MVC】Spring MVC框架的介绍及其使用方法

目录 一、MVC模式 1.1 MVC模式的发展 1.1.1 Model1 模型 1.1.2 Model2 模型 1.2 MVC模式简介 1.模型(Model) 2.视图(View) 3.控制器(Controller) 二、Spring MVC模型简介 三、Spring MVC 六大核心组件 3.1 六大组件简介 1.前端控制器 DispatcherServlet&#xff08…

Notepad++下载、使用

下载 https://notepad-plus-plus.org/downloads/ 安装 双击安装 选择安装路径 使用 在文件夹中搜索 文件类型可以根据需要设置 如 *.* 说明是所有文件类型&#xff1b; *.tar 说明是所有文件后缀是是tar的文件‘&#xff1b;

多个PDF发票合并实现一张A4纸打印2张电子/数电发票功能

python教程79--A4纸增值税电子发票合并打印_python 打印 发票设置_颐街的博客-CSDN博客文章浏览阅读7.9k次。接上篇https://blog.csdn.net/itmsn/article/details/121902974?spm1001.2014.3001.5501一张A4纸上下2张增值税电子发票实现办法。使用环境&#xff1a;python3.8、ma…

JAVA 实现PDF转图片(pdfbox版)

依赖&#xff1a; pdf存放路径 正文开始&#xff1a; pdf转换多张图片、长图 Test void pdf2Image() {String dstImgFolder "";String PdfFilePath "";String relativelyPathSystem.getProperty("user.dir");PdfFilePath relativelyPath &qu…

Ps:PSDT 模板文件

自 Photoshop CC 2015.5 版以后&#xff0c;Ps 中新增了一种文件格式&#xff1a;.PSDT。 说明&#xff1a; PSD、PDD、PSDT 都是 Ps 的专用文件格式&#xff0c;需要继续在 Ps 中进行编辑的文件可存为此类格式。 PSD Photoshop document Photoshop 默认文档格式&#xff0c;支…

选择适合你的办公桌:提高工作效率的关键

​在如今的数字时代&#xff0c;越来越多的人将办公桌移到家里或办公室。但是&#xff0c;如何选择适合你的办公桌可能是个挑战。不同的工作需要和工作空间大小会影响你的选择。下面是一些简单的建议&#xff0c;帮助你找到适合你的办公桌&#xff0c;提高工作效率。 首先&…

使用pytorch处理自己的数据集

目录 1 返回本地文件中的数据集 2 根据当前已有的数据集创建每一个样本数据对应的标签 3 tensorboard的使用 4 transforms处理数据 tranfroms.Totensor的使用 transforms.Normalize的使用 transforms.Resize的使用 transforms.Compose使用 5 dataset_transforms使用 1 返回本地…

@RunWith(SpringRunner.class)注解的作用

通俗点&#xff1a; RunWith(SpringRunner.class)的作用表明Test测试类要使用注入的类&#xff0c;比如Autowired注入的类&#xff0c;有了RunWith(SpringRunner.class)这些类才能实例化到spring容器中&#xff0c;自动注入才能生效 官方点&#xff1a; RunWith 注解是JUnit测…