关于cssparser

时间:2012-03-06 06:15:17

标签: java css

朋友我正在使用cssparser来解析我的CSS。我的代码是这样的:

public static Map<String, CSSStyleRule> parseCSS1() throws IOException {
    Map<String, CSSStyleRule> rules = new LinkedHashMap<String, CSSStyleRule>();

    InputSource inputSource = new InputSource(new FileReader("C:\\COMPUTERS.css"));
    CSSStyleSheet styleSheet = new CSSOMParser().parseStyleSheet(inputSource, null, null);

    CSSRuleList ruleList = styleSheet.getCssRules();
    for (int i = 0; i < ruleList.getLength(); i++) {
        CSSRule rule = ruleList.item(i);
        if (rule.getType() == CSSRule.STYLE_RULE) {
            CSSStyleRule styleRule = (CSSStyleRule) rule;
            rules.put(styleRule.getSelectorText(), styleRule);
        }
    }

    return rules;
}

现在解析后,当我尝试在CSS中打印值(rules.getvalues())时,它给出了这个结果:

BODY { font-family: monospace; 
    color: black; 
    font-size: medium; 
    font-style: normal;
    font-weight: normal; 
    background-color: rgb(255, 182, 193);
    background-image: url(images/COMPUTERSbody_computers.gif);
    border: no }

在最后一行中border:no之后没有分号,并且在原始CSS中没有分号。

那么,我应该手动添加分号还是我犯了错误?

另外,在原来的CSS中:

background-color: #FFB6C1  

替换为:

background-color: rgb(255, 182, 193);

在解析的输出中。有没有办法保持原件的原样?

1 个答案:

答案 0 :(得分:1)

CSS声明中的最后一个分号不是强制性的,并且是故意遗漏的。