如果有相关问题,可以一起研究下
引入相关依赖
<!-- Html工具 -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.1</version>
</dependency>
代码片段
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.*;
import java.nio.charset.StandardCharsets;
/**
* @Author: Climbing-pit
* @Date: 2022/4/19 9:56
* @Description: 网页工具类
*/
public class HtmlUtil {
/**
* 读取本地HTML文件
* 批量移除某个标签的某个属性
* 重新写入
* @param filePath HTML文件路径
* @param tagName 标签名,例如<div></div>、<img></img>、<p></p>等等
* @param attrName 属性名,例如id, class, src, style等等
* @throws IOException
*/
public static void removeForTagAttr(String filePath, String tagName, String attrName) throws IOException {
File in = new File(filePath);
Document document = Jsoup.parse(in, "UTF-8");
Elements imgs = document.getElementsByTag(tagName);
for (Element img : imgs) {
img.removeAttr(attrName);
}
write(in, document);
}
/**
* 读取本地HTML文件
* 批量修改某个标签的某个属性
* 重新写入
* @param filePath HTML文件路径
* @param tagName 标签名,例如<div></div>、<img></img>、<p></p>等等
* @param attrName 属性名,例如id, class, src, style等等
* @throws IOException
*/
public static void editForTagAttr(String filePath, String tagName, String attrName, String attrValue) throws IOException {
File in = new File(filePath);
Document document = Jsoup.parse(in, "UTF-8");
Elements imgs = document.getElementsByTag(tagName);
for (Element img : imgs) {
img.attr(attrName, attrValue);
}
write(in, document);
}
/**
* 编辑完Document后写入
* @param in 源文件
* @param document 新的Document
* @throws IOException
*/
public static void write(File in, Document document) throws IOException {
//重新写入
FileOutputStream fos = new FileOutputStream(in, false);
OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8);
osw.write(document.html());
osw.close();
}
public static void main(String[] args) {
String filePath = "D:\\files\\practice\\testPaper\\1650335157835\\1650335157835.html";
String tagName = "img";
String attrName = "alt";
try {
HtmlUtil.removeForTagAttr(filePath, tagName, attrName);
} catch (IOException e) {
e.printStackTrace();
}
}
}
注意:jsoup是基于MIT协议发布的,可放心使用于商业项目。