目标是使用 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