六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 135|回复: 0

使用SAC&CSSParser解析css文件简单示例

[复制链接]

升级  2.67%

14

主题

14

主题

14

主题

秀才

Rank: 2

积分
54
 楼主| 发表于 2013-1-29 07:31:15 | 显示全部楼层 |阅读模式
SAC:
http://www.w3.org/Style/CSS/SAC/

 
CSSParser下载地址
http://sourceforge.net/projects/cssparser/files/
 
Sample Code:
import java.io.IOException;import org.w3c.css.sac.InputSource;import org.w3c.dom.css.CSSImportRule;import org.w3c.dom.css.CSSRule;import org.w3c.dom.css.CSSRuleList;import org.w3c.dom.css.CSSStyleDeclaration;import org.w3c.dom.css.CSSStyleRule;import org.w3c.dom.css.CSSStyleSheet;import com.steadystate.css.parser.CSSOMParser;public class CSSParserTest {public static void main(String[] args)       {   String URIPath = "file:///" + "d:/common.css";  CSSOMParser cssparser = new CSSOMParser();           CSSStyleSheet css = null;           try {css = cssparser.parseStyleSheet(new InputSource(URIPath), null,null);} catch (IOException e) {System.out.println("解析css文件异常:" + e);}if(css!=null){CSSRuleList cssrules = css.getCssRules();         for (int i = 0; i < cssrules.getLength(); i++){         CSSRule rule = cssrules.item(i);               if (rule instanceof CSSStyleRule){            CSSStyleRule cssrule = (CSSStyleRule) rule;            System.out.println("cssrule.getCssText:"+cssrule.getCssText());            System.out.println("cssrule.getSelectorText:"+cssrule.getSelectorText());            CSSStyleDeclaration styles=cssrule.getStyle();            for(int j=0,n=styles.getLength();j<n;j++){            System.out.println(styles.item(j)+":"+styles.getPropertyValue(styles.item(j)));            }                        }else if (rule instanceof CSSImportRule){             CSSImportRule cssrule = (CSSImportRule) rule;               System.out.println(cssrule.getHref());    }        }}      }}  
发现存在的问题:
对于非css2标准样式不能识别,如:
-moz-opacity:100;
filter:alpha(opacity=100);
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表