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.hqwc.cn/news/157242.html

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

相关文章

各种爱心特效代码免费分享

「链接&#xff1a;https://pan.xunlei.com/s/VNi9l3Mqp9oEflga1T6M-ZUOA1?pwdsam3# 提取码&#xff1a;sam3”复制这段内容后打开手机迅雷App&#xff0c;查看更方便」 「链接&#xff1a;https://pan.xunlei.com/s/VNi9lWqdFIwdtD5sdCDZFamoA1?pwdka8b# 提取码&#xff1a;…

Goby 漏洞发布|XXL-JOB accessToken 权限绕过漏洞

漏洞名称&#xff1a; XXL-JOB accessToken 权限绕过漏洞 English Name&#xff1a;XXL-JOB default accessToken Permission bypass Vulnerability CVSS core: 9.2 影响资产数&#xff1a; 18489 漏洞描述&#xff1a; XXL-JOB 是一款开源的分布式任务调度平台&#xff0…

python manage.py createsuperuser运行错误

我把思念作笺&#xff0c;随风而去&#xff0c;落在你常路过的那个街角… 错误复现 PS D:\教学文件\Django\djangoProject\webDemo02> python manage.py createsuperuser System check identified some issues:WARNINGS: ?: (urls.W005) URL namespace admin isnt unique…

四十三、【进阶】前缀索引

1、基础 简单点说&#xff0c;前缀索引就是当索引字段类型较大时&#xff0c;有时候需要索引很长的字符串&#xff0c;查询时&#xff0c;会浪费更大的空间&#xff0c;此时可以只对该索引的一部分前缀建立索引&#xff0c;可以大大的节省空间。 前缀索引一般配合选择度进行使用…

java入门,哈希函数

一、前言 一听到哈希函数这种东西就感觉是数学&#xff0c;增加了人们的印象它很难。其中在数据结构中的HashMap的存储方式就用到了哈希函数&#xff0c;所以它也算是java的基础。看到哈希别惊慌&#xff0c;首先它只不过是个名称&#xff0c;我们理解它是个函数就行&#xff…

【建议收藏】免费体验的AI论文写作网站-「智元兔 AI」

在当今技术飞速发展的时代&#xff0c;越来越多的领域开始应用人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;。其中&#xff0c;AI写作工具备受瞩目&#xff0c;备受推崇。 在众多的选择中&#xff0c;智元兔AI是一款在笔者使用过程中非常有帮助…

配音软件怎么选择?(简单又实用)

随着短视频、自媒体的普及推广越来越好&#xff0c;想必大家都了解到配音软件的重要性了&#xff0c;用对配音软件&#xff0c;借助AI的力量让我们的作品达到事半功倍是效果&#xff0c;目前市面上有很多不同类型的配音软件&#xff0c;从专业的录音室级别的软件到简单易用的家…

C#中LINQtoSQL的设置与连接

目录 一、首次安装LinqToSql类 二、非首次安装LinqToSql类 1.接受原有数据库连接 2.建立新的数据库连接 3.建立本地数据库连接 LINQ&#xff08;Language-Integrated Query&#xff0c;语言集成查询&#xff09;是微软公司提供的一项新技术&#xff0c;它能够将查询功能直…

作物模型--土壤数据制备过程

作物模型–土壤数据制备过程 首先打开FAO网站 下载下面这两个 Arcgis打开.bil文件 .mdb文件在access中转成.xls格式 Arcgis中对.bil文件定义投影

【HarmonyOS】服务卡片 API6 JSUI跳转不同页面并携带参数

【关键字】 服务卡片、卡片跳转不同页面、卡片跳转页面携带参数 【写在前面】 本篇文章主要介绍开发服务卡片时&#xff0c;如何实现卡片点击跳转不同页面&#xff0c;并携带动态参数到js页面。在此篇文章“服务卡片 API6 JSUI跳转不同页面”中说明了如果跳转不同页面&#xf…

【机器学习】几种常用的机器学习调参方法

在机器学习中&#xff0c;模型的性能往往受到模型的超参数、数据的质量、特征选择等因素影响。其中&#xff0c;模型的超参数调整是模型优化中最重要的环节之一。超参数&#xff08;Hyperparameters&#xff09;在机器学习算法中需要人为设定&#xff0c;它们不能直接从训练数据…

【计算系统】5分钟了解超算,高性能计算,并行计算,分布式计算,网格计算,集群计算以及云计算的区别

5分钟了解超算&#xff0c;高性能计算&#xff0c;并行计算&#xff0c;分布式计算&#xff0c;网格计算&#xff0c;集群计算以及云计算的区别 1. 超算2. 高性能计算3. 并行计算4. 分布式计算5. 网格计算6. 集群计算7. 云计算小结相关资料 1. 超算 超级计算机&#xff08;Sup…