"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Java CSS 파서를 사용하여 HTML 문서의 특정 요소에 대한 CSS 스타일을 어떻게 추출합니까?

Java CSS 파서를 사용하여 HTML 문서의 특정 요소에 대한 CSS 스타일을 어떻게 추출합니까?

2024년 11월 23일에 게시됨
검색:467

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

Java용 CSS 파서

요구 사항

목표는 Java CSS 파서를 사용하여 HTML 문서 내의 특정 요소에 대한 CSS 스타일을 얻는 것입니다.

솔루션

CSSParser

A 권장 옵션은 오류 피드백을 제공하는 강력한 파서인 CSSParser입니다. 다음은 그 사용법의 예입니다:

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 

이 샘플은 CSS 파일을 구문 분석하고 값과 우선순위를 포함하여 각 선택기와 속성에 대한 스타일 정보를 추출하는 방법을 보여줍니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3