- 由来">由来
- 方法">方法
HtmlUtil.escape">HtmlUtil.escapeHtmlUtil.unescape">HtmlUtil.unescapeHtmlUtil.removeHtmlTag">HtmlUtil.removeHtmlTagHtmlUtil.cleanHtmlTag">HtmlUtil.cleanHtmlTagHtmlUtil.unwrapHtmlTag">HtmlUtil.unwrapHtmlTagHtmlUtil.removeHtmlAttr">HtmlUtil.removeHtmlAttrHtmlUtil.removeAllHtmlAttr">HtmlUtil.removeAllHtmlAttrHtmlUtil.filter过滤HTML文本,防止XSS攻击">HtmlUtil.filter过滤HTML文本,防止XSS攻击
由来
针对Http请求中返回的Http内容,Hutool使用此工具类来处理一些HTML页面相关的事情。
比如我们在使用爬虫爬取HTML页面后,需要对返回页面的HTML内容做一定处理,比如去掉指定标签(例如广告栏等)、去除JS、去掉样式等等,这些操作都可以使用HtmlUtil完成。
方法
HtmlUtil.escape
转义HTML特殊字符,包括:
'替换为'"替换为"&替换为&<替换为<>替换为>String html = "<html><body>123'123'</body></html>";// 结果为:<html><body>123'123'</body></html>String escape = HtmlUtil.escape(html);
还原被转义的HTML特殊字符HtmlUtil.unescapeString escape = "<html><body>123'123'</body></html>";// 结果为:<html><body>123'123'</body></html>String unescape = HtmlUtil.unescape(escape);
清除指定HTML标签和被标签包围的内容HtmlUtil.removeHtmlTagString str = "pre<img src=\"xxx/dfdsfds/test.jpg\">";// 结果为:preString result = HtmlUtil.removeHtmlTag(str, "img");
清除所有HTML标签,但是保留标签内的内容HtmlUtil.cleanHtmlTagString str = "pre<div class=\"test_div\">\r\n\t\tdfdsfdsfdsf\r\n</div><div class=\"test_div\">BBBB</div>";// 结果为:pre\r\n\t\tdfdsfdsfdsf\r\nBBBBString result = HtmlUtil.cleanHtmlTag(str);
清除指定HTML标签,不包括内容HtmlUtil.unwrapHtmlTagString str = "pre<div class=\"test_div\">abc</div>";// 结果为:preabcString result = HtmlUtil.unwrapHtmlTag(str, "div");
去除HTML标签中的指定属性,如果多个标签有相同属性,都去除HtmlUtil.removeHtmlAttrString html = "<div class=\"test_div\"></div><span class=\"test_div\"></span>";// 结果为:<div></div><span></span>String result = HtmlUtil.removeHtmlAttr(html, "class");
去除指定标签的所有属性HtmlUtil.removeAllHtmlAttrString html = "<div class=\"test_div\" width=\"120\"></div>";// 结果为:<div></div>String result = HtmlUtil.removeAllHtmlAttr(html, "div");
HtmlUtil.filter过滤HTML文本,防止XSS攻击String html = "<alert></alert>";// 结果为:""String filter = HtmlUtil.filter(html);
