Options de l'analyseur CSS en Java
Introduction
Les développeurs recherchent souvent un analyseur CSS en Java relever le défi de l'extraction de styles à partir d'éléments HTML. Bien que l'interface W3C SAC constitue une base, trouver une documentation complète peut s'avérer difficile. Voici une exploration des solutions potentielles et un code détaillé pour vous guider.
Exploration des options de l'analyseur CSS
Une option notable est CSSParser. Ses capacités de retour d'erreur sont précieuses, et voici un exemple de code modifié pour votre référence :
<code class="java">package com.dlogic; import com.steadystate.css.parser.CSSOMParser; import org.w3c.css.sac.InputSource; import org.w3c.dom.css.CSSStyleSheet; import org.w3c.dom.css.CSSRuleList; import org.w3c.dom.css.CSSRule; import org.w3c.dom.css.CSSStyleRule; import org.w3c.dom.css.CSSStyleDeclaration; import java.io.*; // Main class public class CSSParserTest { public static void main(String[] args) { CSSParserTest oParser = new CSSParserTest(); if (oParser.Parse("design.css")) { System.out.println("Parsing completed OK"); } else { System.out.println("Unable to parse CSS"); } } public boolean Parse(String cssfile) { FileOutputStream out = null; PrintStream ps = null; boolean rtn = false; try { // Access CSS file as a resource InputStream stream = oParser.getClass().getResourceAsStream(cssfile); // Create log file out = new FileOutputStream("log.txt"); if (out != null) { ps = new PrintStream(out); System.setErr(ps); // Redirect stderr to log file } else { return rtn; } // Parse CSS file InputSource source = new InputSource(new InputStreamReader(stream)); CSSOMParser parser = new CSSOMParser(); CSSStyleSheet stylesheet = parser.parseStyleSheet(source, null, null); // Inspect CSS DOM CSSRuleList ruleList = stylesheet.getCssRules(); ps.println("Number of rules: " + ruleList.getLength()); for (int i = 0; i < ruleList.getLength(); i++) { CSSRule rule = ruleList.item(i); if (rule instanceof CSSStyleRule) { CSSStyleRule styleRule = (CSSStyleRule)rule; ps.println("selector:" + i + ": " + styleRule.getSelectorText()); CSSStyleDeclaration styleDeclaration = styleRule.getStyle(); for (int j = 0; j < styleDeclaration.getLength(); j++) { String property = styleDeclaration.item(j); ps.println("property: " + property); ps.println("value: " + styleDeclaration.getPropertyCSSValue(property).getCssText()); ps.println("priority: " + styleDeclaration.getPropertyPriority(property)); } } } if (out != null) out.close(); if (stream != null) stream.close(); rtn = true; } catch (IOException ioe) { System.err.println ("IO Error: " + ioe); } catch (Exception e) { System.err.println ("Error: " + e); } finally { if (ps != null) ps.close(); } return rtn; } }</code>
Test de l'analyseur CSS
Pour tester l'analyseur, placez un CSS fichier nommé "design.css" dans votre répertoire source et exécutez la méthode principale de CSSParserTest. La sortie sera enregistrée dans "log.txt" et inclura des détails sur les règles et styles CSS.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!