Heim  >  Artikel  >  Web-Frontend  >  Wie wählt man den besten CSS-Parser in Java aus?

Wie wählt man den besten CSS-Parser in Java aus?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-02 14:09:30573Durchsuche

How to Choose the Best CSS Parser in Java?

CSS-Parser-Optionen in Java

Einführung

Entwickler suchen häufig nach einem CSS-Parser in Java stehen vor der Herausforderung, Stile aus HTML-Elementen zu extrahieren. Während die W3C-SAC-Schnittstelle eine Grundlage bietet, kann es schwierig sein, eine umfassende Dokumentation zu finden. Hier finden Sie eine Erkundung möglicher Lösungen und einen detaillierten Code als Leitfaden.

CSS-Parser-Optionen erkunden

Eine bemerkenswerte Option ist CSSParser. Seine Fehlerrückmeldungsfunktionen sind wertvoll, und hier ist ein modifiziertes Codebeispiel als Referenz:

<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>

Testen des CSS-Parsers

Um den Parser zu testen, platzieren Sie ein CSS Datei mit dem Namen „design.css“ in Ihrem Quellverzeichnis und führen Sie die Hauptmethode von CSSParserTest aus. Die Ausgabe wird in „log.txt“ protokolliert und enthält Details zu den CSS-Regeln und -Stilen.

Das obige ist der detaillierte Inhalt vonWie wählt man den besten CSS-Parser in Java aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn