目標是使用 Java CSS 解析器來取得 HTML 文件中特定元素的 CSS 樣式。
CSSParser
推薦一個選項是 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