html工具类
2019-08-28 21:01
1251 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42174623/article/details/100126769
实现的功能就是将提交的HTML文件处理成可以用富文本编辑器进行在线编辑
package com.delin.contract.coder.coderUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.CharsetUtil; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.Text; import org.dom4j.io.SAXReader; import org.dom4j.tree.DefaultText; import java.io.File; import java.util.HashMap; import java.util.Map; public class getHtmlCharacter { public static Map<String,String> HtmlCharacter(File file){ Map<String,String> result=new HashMap(); // 读取html字符串 String htmlStr = FileUtil.readString(file, CharsetUtil.defaultCharsetName()); // 处理非法标签及特殊字符 htmlStr = htmlStr.replaceAll("<META([\\s\\S]*?)>", ""); htmlStr = htmlStr.replaceAll("<meta([\\s\\S]*?)>", ""); htmlStr = htmlStr.replaceAll("“", "“"); htmlStr = htmlStr.replaceAll("”", "”"); htmlStr = htmlStr.replaceAll("√", "√"); FileUtil.writeString(htmlStr, file,CharsetUtil.defaultCharsetName()); try { // 获取文档sax解析器,读取流获取document对象 SAXReader reader = new SAXReader(); org.dom4j.Document doc = reader.read(file); // 获取html标签 Element htmlNode = doc.getRootElement(); // 获取body标签并递归处理子标签 Element bodyNode = htmlNode.element("body"); treeWalk(bodyNode); // 分别获取 style 和 body 内容 Element style = htmlNode.element("head").element("style"); Element body = htmlNode.element("body"); String bodyStr = body.asXML(); bodyStr = bodyStr.replaceAll("nbsp;", " "); bodyStr = bodyStr.replaceAll("\r|\n", ""); result.put("style", style.asXML()); result.put("body", bodyStr); } catch (DocumentException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return result; } public static void treeWalk(Element element) { for (int i = 0, size = element.nodeCount(); i < size; i++) { Node node = element.node(i); if (node instanceof Element) { Element nodeElement = (Element) node; int count = nodeElement.nodeCount(); if(count == 0){ String name = nodeElement.getName(); if("p".equals(name)){ nodeElement.add(new DefaultText("nbsp;")); } } treeWalk(nodeElement); } else if(node instanceof Text){ Text textNode = (Text)node; String text = textNode.getText(); textNode.setText(text.replaceAll(" ", "nbsp;")); } } } }
相关文章推荐
- 【工具类】-字符串操作类(包含将字符按分隔符组成数组,去除末尾特殊符号,HTML转行成TEXT等功能)
- Web开发中个人String工具类: 提供 toUTF8, toGBK, toHtml, formatDate
- Java 读取HTML页面源代码工具类
- Web开发中个人String工具类: 提供 toUTF8, toGBK, toHtml, formatDate
- java工具类mht转html格式文件
- 对html字符进行转义和反转义---工具类StringEscapeUtils
- java工具类:文本中去除html标签
- FreeMarker工具类,用来根据模板文件生成html文件,html字符串等
- 一个工具类WebUtil.java(包含设置cookie,得到cookie的方法,去除字符串当中的html标签的方法等等)
- Net处理html页面元素工具类(HtmlAgilityPack.dll)的使用
- 处理html页面元素工具类(HtmlAgilityPack.dll)的使用
- java替换html工具类
- 简单的html解析工具类
- html传参数 js工具类
- Python 边做边学 8.4 工具类--HTML解析工具(HtmlSoupUtil)
- java后台html转jpg图片工具类及测试类
- html工具类收藏,自己封装的
- Java和.Net版通用工具类实现--生成自定义Web Html/Excel测试用例和测试报告
- html Demo工具类:网页使用ie另存为htm文件时,css样式文件的图片路径不对,进行修改,并下载图片
- spring工具类HtmlUtils