2013-03-23 52 views
6

Tôi đang cố gắng phân tích cú pháp CSS DOM trong Java và đã sử dụng jSoup cho cùng một chức năng cho HTML. Tôi đã xem xét thông qua API jSoup (cũng như Google), nhưng không tìm thấy bất kỳ lớp phân tích cú pháp liên quan đến CSS nào. Có cách nào để phân tích cú pháp định dạng CSS thành DOM bằng cách sử dụng jSoup hoặc tôi có cần API khác không?Phân tích cú pháp CSS với jSoup

+0

Không, Jsoup không thể phân tích cú pháp CSS, vì vậy bạn sẽ phải tìm kiếm một cái gì đó khác (Đáng tiếc là không có nhiều lựa chọn tốt mặc dù), hoặc sử dụng regex để xử lý CSS, nếu nó là khả thi. – JonasCz

Trả lời

2

Jsoup không thể duyệt qua CSS DOM, mặc dù bạn có thể truy cập bằng cách chọn các thẻ kiểu/liên kết.

Hãy xem CSS Parser, có vẻ rất hứa hẹn.

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()); 
    } 

Output

h1 { background: rgb(255, 204, 68) } 
div { color: red } 
Các vấn đề liên quan