Rumah > hujung hadapan web > tutorial css > Bagaimanakah cara saya mengekstrak gaya CSS untuk elemen tertentu dalam dokumen HTML menggunakan penghurai CSS Java?

Bagaimanakah cara saya mengekstrak gaya CSS untuk elemen tertentu dalam dokumen HTML menggunakan penghurai CSS Java?

Mary-Kate Olsen
Lepaskan: 2024-11-03 20:57:03
asal
852 orang telah melayarinya

How do I extract CSS styles for specific elements in an HTML document using a Java CSS parser?

Penghuraikan CSS untuk Java

Keperluan

Objektifnya adalah untuk mendapatkan gaya CSS untuk elemen tertentu dalam dokumen HTML menggunakan penghurai CSS Java.

Penyelesaian

CSSParser

Pilihan yang disyorkan ialah CSSParser, penghurai teguh yang menawarkan maklum balas ralat. Di bawah ialah contoh penggunaannya:

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

    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 {

            InputStream stream = oParser.getClass().getResourceAsStream(cssfile);

            out = new FileOutputStream("log.txt");

            if (out != null) {

                ps = new PrintStream(out);
                System.setErr(ps); //redirects stderr to the log file as well

            } else {

                return rtn;

            }

            InputSource source = new InputSource(new InputStreamReader(stream));
            CSSOMParser parser = new CSSOMParser();
            CSSStyleSheet stylesheet = parser.parseStyleSheet(source, null, null);

            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>
Salin selepas log masuk

Sampel ini menunjukkan cara menghuraikan fail CSS dan mengekstrak maklumat gaya untuk setiap pemilih dan sifat, termasuk nilai dan keutamaannya.

Atas ialah kandungan terperinci Bagaimanakah cara saya mengekstrak gaya CSS untuk elemen tertentu dalam dokumen HTML menggunakan penghurai CSS Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan