将HTML的<style>样式,变为行内样式
来源:互联网 发布:淘宝卖家怎么开直通车 编辑:程序博客网 时间:2024/04/30 17:50
这里我们要借助Jsoup这个工具进行处理。
原理就是现将style标签的内容封装为一个Map,然后在获取所有拥有class的标签,将map和class一一对应,最后写入行中。
没啥可说的,直接撸袖子干。
private static String replaceClass(Map<String, String> styMap, String html) { org.jsoup.nodes.Document doc = Jsoup.parse(html); Elements anyClass = doc.getElementsByAttribute("class"); for (Element element : anyClass) { String aClass = element.attr("class"); System.out.println(aClass); String[] classStrs = (aClass.split(" ")); for (String classStr : classStrs) { element.attr("style", element.attr("style") + styMap.get(classStr)); } element.removeAttr("class"); } return doc.toString(); } private static String formatHtmlRowCss(String html) { org.jsoup.nodes.Document jsoup = Jsoup.parse(html); JXDocument doc = new JXDocument(html); String allcss = jsoup.getElementsByTag("style").html(); Map<String, String> styleMap = new HashMap<>(); Pattern pattern = Pattern.compile("\\.(\\w+)\\{(?s)(.+?)\\}"); Matcher matcher = pattern.matcher(allcss); while (matcher.find()) { styleMap.put(matcher.group(1), matcher.group(2)); } return Word2HtmlUnit.replaceClass(styleMap, html); }
这里我只替换了简单的class,如果有其他需求请只管加,因为题主这里只需要class样式,所以并没有写的很通用。jsoup支持css表达式,所以前期不要按照”.”去分割,直接将“#XXX”“.XXX””XXX>XXX”这样的形式封装到map中,替换时,直接通过这个名字去查找元素。
阅读全文
0 0
- 将HTML的<style>样式,变为行内样式
- HTML样式选择器style
- html style样式引用
- HTML样式(style)
- html的<style>样式:css入门
- JS改变 HTML style样式
- Style样式的定义
- tabControl的样式style
- Style样式的定义
- 彻底去掉html中带的element.style样式
- 样式化,Style样式的定义
- style样式
- Firefox - 附加组件 - 扩展 - Firebug - HTML视图 - Style样式选项卡 - 显示计算样式不显示所有可用的样式
- 网页html样式(style)行间距:
- Android Style Resource --- style样式的定义
- Android系统的样式style
- android 样式style的设置
- WPF style 样式的使用
- 高斯滤波
- 类重复导致的错误,只要检查一下aar文件里面是否包含了model文件里的类
- 信息安全意识
- 点击事件,选择按钮,点击从前端传到后台,查询数据,并返回前段,显示出来。---tp5
- MQTT协议学习与在Java(Android通用)中的使用
- 将HTML的<style>样式,变为行内样式
- 在Vue中使用Vuex进行状态管理指南
- AlphaGo人肉臂黄士杰:我的使命完成 阿尔法狗项目结束 | 重磅
- 从Excel文件中找出在TXT文件中没有出现的 行之_代码片段
- cookie和session的区别
- JS学习笔记day1
- Kettle日志输出到文件方法
- 虚拟机安装CentOS 7, 安装Docker CE
- FPGA:下一代机器人感知处理器