最近为了满足功能研发,动态设置部件属性信息,需要解析前端界面的CSS样式表,但是在网上查了查,目前比较合适的是cssparser,但是不满足获取样式的某个属性,这是我写了个工具类,通过正则表达式和cssparser解析样式文件,获取样式类信息,也可获取某个样式类下的某个属性信息,代码如下,需要引入两个jar包(cssparser-0.9.18.jar和sac.jar,在附件中可下载)
package com.demo; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.w3c.css.sac.InputSource; import org.w3c.dom.css.CSSRule; import org.w3c.dom.css.CSSRuleList; import org.w3c.dom.css.CSSStyleSheet; import com.steadystate.css.parser.CSSOMParser; import com.steadystate.css.parser.SACParserCSS3; public class CSSUtil { private CSSStyleSheet sheet = null; public CSSStyleSheet getSheet() { return sheet; } public void setSheet(CSSStyleSheet sheet) { this.sheet = sheet; } /** * 指定文件流 * @param stream */ public CSSUtil(InputStream stream){ InputSource source = new InputSource(new InputStreamReader(stream)); CSSOMParser parser = new CSSOMParser(new SACParserCSS3()); try { sheet = parser.parseStyleSheet(source, null, null); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 获取样式信息 * @param className 样式名 * @return 返回该样式的信息 */ public String getClass(String className){ if(sheet == null){ return null; } String res = ""; CSSRuleList rules = sheet.getCssRules(); for (int i = 0; i < rules.getLength(); i++) { CSSRule rule = rules.item(i); Pattern pattern = Pattern.compile("\\."+className + ".*([^\\{]\\{.*[^\\}]\\})"); Matcher matcher = pattern.matcher(rule.getCssText()); while(matcher.find()){ res = res + matcher.group(1) + "\n"; } } return res; } /** * 获取某个样式类下的某个属性信息,没有返回空 * @param className 样式类名称 * @param attrName 属性名称 * @return */ public String getCssAttribute(String className, String attrName){ String classContent = this.getClass(className); Pattern pattern = Pattern.compile("[^a-zA-Z\\-]" + attrName + ":\\s*([^;\\}]{1,100})\\s*[;\\}]{1}"); Matcher matcher = pattern.matcher(classContent); String res = ""; while(matcher.find()){ res = matcher.group(1); } return res; } }
相关推荐
技术点:1、使用htmlparser解析html文件,得到html代码里的js、css、img链接 2、将相对路径的链接转变成绝对路径,并读取资源 3、将css和js合并到html 4、将图片转换成base64编码,写入标签的src
javaCssParser 用于CSS文件解析的简单Java库
从 URL、文件或字符串中抓取并解析HTML 使用 DOM 遍历或 CSS 选择器查找并提取数据 操作HTML 元素、属性和文本 根据安全列表清理用户提交的内容,以防止 XSS 攻击 输出整洁的 HTML jsoup 旨在处理各种常见的 HTML;...
jStyleParser jStyleParser是一个Java库,用于解析CSS样式表并根据CSS 3规范将样式分配给HTML或XML文档元素。 它允许解析单个CSS文件以及计算DOM元素的有效样式。 有关更多信息,请参见项目页面: : 安装对于Maven,...
jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。 jsoup 可以从包括字符串、URL 地址...
用于在构建时压缩CSS文件的Maven插件位于子项目ph-csscompress-maven-plugin中,并在下面进行了介绍。 ph-css没有将CSS应用于HTML元素的逻辑。 该页面显示了一些可用于使用该库的基本代码示例。 所有代码段均可...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。 jsoup的主要功能如下: 从一个URL,文件或...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...
jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 Jsoup的主要功能 1)从一个URL,文件或字符串中...
将项目 SDK 设置为 Java 1.8,将项目语言级别设置为 8 - Lambdas、类型注释等。将尽快提供自可执行的 jar 文件。 如何使用应用程序: 应用程序启动后,选择 PST 文件。 按“启动”按钮 分析 PST 文件后(可能需要...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...
│ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form...
jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新...