朋友我正在使用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);
在解析的输出中。有没有办法保持原件的原样?
答案 0 :(得分:1)
CSS声明中的最后一个分号不是强制性的,并且是故意遗漏的。