mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
fix bug
This commit is contained in:
@@ -6,13 +6,13 @@ import cn.hutool.core.util.StrUtil;
|
||||
|
||||
/**
|
||||
* HTML工具类
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* 比如我们在使用爬虫爬取HTML页面后,需要对返回页面的HTML内容做一定处理,<br>
|
||||
* 比如去掉指定标签(例如广告栏等)、去除JS、去掉样式等等,这些操作都可以使用此工具类完成。
|
||||
*
|
||||
*
|
||||
* @author xiaoleilu
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class HtmlUtil {
|
||||
|
||||
@@ -50,7 +50,7 @@ public class HtmlUtil {
|
||||
* <li>< 替换为 &lt;</li>
|
||||
* <li>> 替换为 &gt;</li>
|
||||
* </ul>
|
||||
*
|
||||
*
|
||||
* @param text 被转义的文本
|
||||
* @return 转义后的文本
|
||||
*/
|
||||
@@ -60,7 +60,7 @@ public class HtmlUtil {
|
||||
|
||||
/**
|
||||
* 还原被转义的HTML特殊字符
|
||||
*
|
||||
*
|
||||
* @param htmlStr 包含转义符的HTML内容
|
||||
* @return 转换后的字符串
|
||||
*/
|
||||
@@ -76,7 +76,7 @@ public class HtmlUtil {
|
||||
|
||||
/**
|
||||
* 清除所有HTML标签,但是不删除标签内的内容
|
||||
*
|
||||
*
|
||||
* @param content 文本
|
||||
* @return 清除标签后的文本
|
||||
*/
|
||||
@@ -87,7 +87,7 @@ public class HtmlUtil {
|
||||
/**
|
||||
* 清除指定HTML标签和被标签包围的内容<br>
|
||||
* 不区分大小写
|
||||
*
|
||||
*
|
||||
* @param content 文本
|
||||
* @param tagNames 要清除的标签
|
||||
* @return 去除标签后的文本
|
||||
@@ -99,7 +99,7 @@ public class HtmlUtil {
|
||||
/**
|
||||
* 清除指定HTML标签,不包括内容<br>
|
||||
* 不区分大小写
|
||||
*
|
||||
*
|
||||
* @param content 文本
|
||||
* @param tagNames 要清除的标签
|
||||
* @return 去除标签后的文本
|
||||
@@ -111,7 +111,7 @@ public class HtmlUtil {
|
||||
/**
|
||||
* 清除指定HTML标签<br>
|
||||
* 不区分大小写
|
||||
*
|
||||
*
|
||||
* @param content 文本
|
||||
* @param withTagContent 是否去掉被包含在标签中的内容
|
||||
* @param tagNames 要清除的标签
|
||||
@@ -127,10 +127,10 @@ public class HtmlUtil {
|
||||
// (?i)表示其后面的表达式忽略大小写
|
||||
if (withTagContent) {
|
||||
// 标签及其包含内容
|
||||
regex = StrUtil.format("(?i)<{}\\s*?[^>]*?/?>(.*?</{}>)?", tagName, tagName);
|
||||
regex = StrUtil.format("(?i)<{}(\\s+[^>]*)?/?>(.*?</{}>)?", tagName, tagName);
|
||||
} else {
|
||||
// 标签不包含内容
|
||||
regex = StrUtil.format("(?i)<{}\\s*?[^>]*?>|</{}>", tagName, tagName);
|
||||
regex = StrUtil.format("(?i)<{}(\\s+[^>]*)?/?>|</?{}>", tagName, tagName);
|
||||
}
|
||||
|
||||
content = ReUtil.delAll(regex, content); // 非自闭标签小写
|
||||
@@ -140,7 +140,7 @@ public class HtmlUtil {
|
||||
|
||||
/**
|
||||
* 去除HTML标签中的属性,如果多个标签有相同属性,都去除
|
||||
*
|
||||
*
|
||||
* @param content 文本
|
||||
* @param attrs 属性名(不区分大小写)
|
||||
* @return 处理后的文本
|
||||
@@ -161,7 +161,7 @@ public class HtmlUtil {
|
||||
|
||||
/**
|
||||
* 去除指定标签的所有属性
|
||||
*
|
||||
*
|
||||
* @param content 内容
|
||||
* @param tagNames 指定标签
|
||||
* @return 处理后的文本
|
||||
@@ -177,7 +177,7 @@ public class HtmlUtil {
|
||||
|
||||
/**
|
||||
* Encoder
|
||||
*
|
||||
*
|
||||
* @param text 被编码的文本
|
||||
* @return 编码后的字符
|
||||
*/
|
||||
@@ -201,7 +201,7 @@ public class HtmlUtil {
|
||||
|
||||
/**
|
||||
* 过滤HTML文本,防止XSS攻击
|
||||
*
|
||||
*
|
||||
* @param htmlContent HTML内容
|
||||
* @return 过滤后的内容
|
||||
*/
|
||||
|
Reference in New Issue
Block a user