0

我正在尝试使用 jStyleParser 库(CSSBox 项目的一部分)来分析通用网页的 css 并将所有 css 信息绑定到该页面的 DOM。我的目标是,给定一个网页,拥有一个 DOM 树,这样,对于每个节点,我可以获得所有与该节点相关的 css 信息。

这是(部分)我的代码:

System.out.println("Analizing "+Mylocalfile.getAbsolutePath()); 
StyleSheet ss = CSSFactory.parse(Mylocalfile.getAbsolutePath(), "UTF-8");
if (ss.isEmpty()) System.out.println("StyleSheet is void");    

parse 方法似乎无法解析文件:StyleSheet ss 实际上是无效的。

你知道为什么吗?

4

1 回答 1

1

只要MyLocalFile指向 CSS 样式表 (*.css),您的代码就是正确的。在这种情况下,您应该在ss中获取已解析的样式表,但它没有绑定到任何 DOM。如果您仍然获得空样式表,则可能是 CSS 代码甚至解析器中存在错误。在这种情况下,我建议向SourceForge 的 jStyleParser 论坛报告。

如果要将样式定义分配给 DOM(MyLocalFile指向 HTML 文件),则应使用jStyleParser 手册中描述的assignDOM方法。在这种情况下,您应该使用 DOM 解析器解析 HTML 文档,并使用assignDOM方法自动检索引用的样式表并计算元素样式。您可以在 jStyleParser 源包的 src/test/DOMAssign.java 中找到一个示例。

于 2012-08-10T10:56:40.530 回答