


Wie kann ich eine CSS-Datei in Java analysieren, bestimmte Regeln basierend auf Selektoren extrahieren und deren Stile abrufen?
CSS-Parsing in Java
Auf der Suche nach einem CSS-Parser für Java könnten Sie die W3C-SAC-Schnittstelle und ihre Implementierungen in Betracht ziehen. Allerdings kann es schwierig sein, Tutorials und Beispiele dafür zu finden.
Empfehlung und Codebeispiel
Ich empfehle dringend die Verwendung von CSSParser, der für sein hervorragendes Fehlerfeedback bekannt ist. Unten finden Sie einen modifizierten Beispielcode basierend auf CSSParser:
<code class="java">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.*; public class CSSParserTest { protected static CSSParserTest oParser; public static void main(String[] args) { 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 (must be in package) InputStream stream = oParser.getClass().getResourceAsStream(cssfile); // Overwrite existing file contents out = new FileOutputStream("log.txt"); if (out != null) { // Log file ps = new PrintStream(out); System.setErr(ps); } else { return rtn; } InputSource source = new InputSource(new InputStreamReader(stream)); CSSOMParser parser = new CSSOMParser(); CSSStyleSheet stylesheet = parser.parseStyleSheet(source, null, null); // Iterate through DOM and inspect 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)); } } } } catch (IOException ioe) { System.err.println("IO Error: " + ioe); } catch (Exception e) { System.err.println("Error: " + e); } finally { if (ps != null) ps.close(); if (out != null) out.close(); if (stream != null) stream.close(); } return rtn; } }</code>
Mit diesem Code können Sie eine CSS-Datei analysieren, auf bestimmte Regeln basierend auf Selektoren zugreifen und deren Stile aus dem CSSStyleDeclaration-Objekt abrufen.
Das obige ist der detaillierte Inhalt vonWie kann ich eine CSS-Datei in Java analysieren, bestimmte Regeln basierend auf Selektoren extrahieren und deren Stile abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Haben Sie jemals einen Countdown -Timer für ein Projekt benötigt? Für so etwas ist es möglicherweise natürlich, nach einem Plugin zu greifen, aber es ist tatsächlich viel mehr

Alles, was Sie schon immer über Datenattribute in HTML, CSS und JavaScript wissen wollten.

Zu Beginn eines neuen Projekts erfolgt die SASS -Zusammenstellung im Blinzeln eines Auges. Dies fühlt sich gut an, besonders wenn es mit Browsersync kombiniert ist, das nachlädt

Eine Sache, die mich auf die Liste der Funktionen für Lea Verou im Einklang mit Conic-Gradient () -Polyfill auffiel, war das letzte Element:

Mit der Inline-Template-Anweisung können wir reichhaltige Vue-Komponenten als fortschreitende Verbesserung gegenüber vorhandenem WordPress-Markup erstellen.

Versuchen wir, hier einen Begriff zu prägen: "Statischer Formanbieter". Sie bringen Ihre HTML

Jedes Mal, wenn ich ein neues Projekt starte, organisiere ich den Code, den ich in drei Typen oder Kategorien betrachte, wenn Sie möchten. Und ich denke, diese Typen können auf angewendet werden

PHP -Vorlagen erhält oft einen schlechten Rap für die Erleichterung von unterdurchschnittlichem Code - aber das muss nicht der Fall sein. Schauen wir uns an, wie PHP -Projekte eine Basis durchsetzen können
