2013-03-23 13 views
6

Próbuję parsować CSS DOM w Javie i już używam jSoup dla tej samej funkcji dla HTML. Przeglądałem interfejs API jSoup (jak również Google), ale nie znalazłem żadnych klas analizy parsowania związanych z CSS. Czy istnieje sposób na sparsowanie formatu CSS do DOM za pomocą jSoup lub czy potrzebuję innego API?Parsowanie CSS z jSoup

+0

Nie, Jsoup nie można analizować CSS, więc trzeba będzie szukać czegoś innego (niestety nie ma wielu dobrych opcji chociaż), lub użyć wyrażenia regularnego do przetwarzania CSS, jeśli jest to wykonalne. – JonasCz

Odpowiedz

2

Jsoup nie może przechodzić przez DOM CSS, chociaż można uzyskać do niego dostęp, wybierając znaczniki stylu/łącza.

Spójrz na CSS Parser, wygląda bardzo obiecująco.

InputSource source = new InputSource(
     new StringReader(
      "h1 { background: #ffcc44; } div { color: red; }")); 
    CSSOMParser parser = new CSSOMParser(new SACParserCSS3()); 
    CSSStyleSheet sheet = parser.parseStyleSheet(source, null, null); 
    CSSRuleList rules = sheet.getCssRules(); 
    for (int i = 0; i < rules.getLength(); i++) { 
     final CSSRule rule = rules.item(i); 
     System.out.println(rule.getCssText()); 
    } 

Wyjście

h1 { background: rgb(255, 204, 68) } 
div { color: red }