2012-03-06 1 views
0

Друзья Я использую cssparser для разбора моего CSS. Мой код выглядит так:Что касается cssparser

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

Последняя точка с запятой в объявлении CSS не является обязательной и не используется специально для библиотеки.

Смежные вопросы