Java实现对Html文本的处理

news2025/7/11 15:02:25

 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.coloradmin.cn/o/1158046.html

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

相关文章

EG4003-一颗为微波、红外信号放大及处理输出的数模混合芯片

产品描述&#xff1a; EG4003是一款特意为微波、红外信号放大及处理输出的数模混合芯片&#xff0c;内部集成了运算放大器、双门限电压比较器、参考电压源、延时时间定时器和封锁时间定时器及状态控制器等&#xff0c;专用于防盗报警系统、人体门控制装置、照明控制开关等场合。…

C# 通过Costura.Fody把DLL合并到exe程序中

打包独立的exe程序有多种方法&#xff0c;这里只说Costura.Fody。 我们用VS发布应用程序可以借助Costura.Fody直接打包成一个独立的exe程序&#xff0c;但是一些非托管的做了几次都没打进去&#xff0c;最后成功了&#xff0c;这里记录一下。 首先安装Costura.Fody 或者可以通…

华为OD机试 - 统计射击比赛成绩 - 逻辑分析(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

【金银钻思】

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

ScrapeKit库中Swift爬虫程序写一段代码

以下是一个使用ScrapeKit库的Swift爬虫程序&#xff0c;用于爬取网页视频的代码&#xff1a; import ScrapeKit// 创建一个配置对象&#xff0c;用于指定爬虫ip服务器信息 let config Configuration(proxyHost: "duoip", proxyPort: 8000)// 创建一个爬虫对象 let s…

Linux新加硬盘的挂载方法

1、首先查看当前硬盘所属的分区 sudo fdisk -lu 可以看到我们新加的盘&#xff1a; 接下来&#xff0c;对这个盘进行格式化&#xff1a; sudo mkfs -t ext4 /dev/sda 特别提醒&#xff1a; 这里的 /dev/sda 是你新挂载的盘符&#xff0c;一定不能搞错&#xff0c;不然就可能造…

Vue3.0 reactive与ref VCA模式

简介 Vue3 最大的一个变动应该就是推出了 CompositionAPI&#xff0c;可以说它受ReactHook 启发而来&#xff1b;它我们编写逻辑更灵活&#xff0c;便于提取公共逻辑&#xff0c;代码的复用率得到了提高&#xff0c;也不用再使用 mixin 担心命名冲突的问题。 ref 与 reactive…

高尔夫代码

在高尔夫游戏中&#xff0c;每个洞都有自己的标准杆数par&#xff0c;意思是一个高尔夫球员为了把球打进洞里完成比赛&#xff0c;预计要挥杆的平均次数 strokes。 根据你把球打进洞所挥杆的次数 strokes 高于或低于 par 多少&#xff0c;有一个不同的昵称&#xff08;代表打高…

已经安装了pandas库,但仍然遇到导入错误

已经安装了pandas库&#xff0c;但仍然遇到导入错误&#xff0c;可能是因为你的开发环境没有正确配置或没有选中正确的Python解释器。 报错内容&#xff1a; [{"resource": "/D:/Desktop/01.py","owner": "_generated_diagnostic_collect…

Find My移动硬盘|苹果Find My技术与移动硬盘结合,智能防丢,全球定位

当今已经是数据的时代&#xff0c;各种东西需要保存下来的很多&#xff0c;电脑、手机等设备更换频率也快&#xff0c;确实每个人都需要一个自己的"数据库"&#xff0c;而移动硬盘无疑是最有性价比、最简单使用的选择。移动硬盘一直是我们生活中不可或缺的存储工具&a…

2023最新ChatGPT商业运营系统源码+支持GPT4/支持ai绘画+支持Midjourney绘画

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

鼠标移动的提示框

<template><div><!-- 提示框 --><div class"float-tip" :show"floatTipData.show" :style"floatTipData.style">{{ floatTipData.text }}</div><!-- 移入某个元素触发显示跟随提示框显示--><div class&q…

206.反转链表

206.反转链表 力扣题目链接(opens new window) 题意&#xff1a;反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 双双指针法&#xff1a; 创建三个节点 pre(反转时的第一个节点)、cur(当前指向需要反转的节点…

云原生环境下JAVA应用容器JVM内存如何配置?—— 筑梦之路

Docker环境下的JVM参数非定值配置 —— 筑梦之路_docker jvm设置-CSDN博客 之前简单地记录过一篇&#xff0c;这里在之前的基础上更加细化一下。 场景说明 使用Java开发且设置的JVM堆空间过小时&#xff0c;程序会出现系统内存不足OOM&#xff08;Out of Memory&#xff09;的…

『第十二章』数据持久化:SwiftData

在本篇博文中,您将学到如下内容: 1. 全新的 SwiftData2. SwiftData 的组成SwiftData 数据模型3. SwiftData 数据模型与增删改查操作4. 双剑合璧:SwiftData 与 SwiftUI总结梦后楼台高锁,酒醒帘幕低垂。 去年春恨却来时。 落花人独立,微雨燕双飞。 记得小蘋初见,两重心字罗衣…

MacBook终端安装tree命令(保证好使)

1. 首先在终端安装brew 由于mac是没有原生支持tree命令的&#xff0c;所以我们在安装tree命令之前&#xff0c;先安装brew。 先输入下面命令&#xff0c;安装brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)…

针对实体商家技术开发一体化营销工具都包含那些功能呢?

1.批量剪辑技术研发 做的数学建模算法&#xff0c;数学阶乘的组合乘组形式&#xff0c;采用两套查重机制&#xff0c;一套针对素材进行查重抽帧素材&#xff0c;一套针对成片进行抽帧素材打分制度查重&#xff0c;自动滤重计入打分。 2.账号矩阵分发开发 多平台&#xff0c;…

我不允许你还不知道公众号菜单栏添加表情的两种方法

在做公众号的环节中&#xff0c;设置菜单栏也很重要&#xff0c;菜单栏可以增加交互性和用户体验的趣味性。表情符号可以使得公众号菜单栏更加生动有趣&#xff0c;吸引用户的注意力&#xff0c;提高用户的使用体验&#xff1b;提高用户辨识度&#xff0c;通过使用表情符号&…

vue 获取上一周和获取下一周的日期时间

效果图&#xff1a; 代码 <template><div><div style"padding: 20px 0;"><div style"margin-left: 10px; border-left: 5px solid #0079fe; font-size: 22px; font-weight: 600; padding-left: 10px">工作计划</div><di…

怎么开发小程序?微信小程序开发方式

小程序开发之所以受到欢迎&#xff0c;是因为相比于APP&#xff0c;小程序的开发成本更低。不需要下载和安装&#xff0c;用户可以直接在微信内使用&#xff0c;节省了开发和维护的成本。小程序的开发方式有很多种&#xff0c;常见的有&#xff1a;自己源码开发、模板编辑、购买…