使用Java解析HTML"style"属性

And*_*rey 10 html java parsing coding-style

我解析了HTML代码org.w3c.dom.Document.我需要检查所有标记style属性,解析它们,更改一些CSS属性并将修改后的样式定义返回到属性.

是否有任何标准方法来解析style属性?如何使用org.w3c.dom.css包中的类和接口?

我需要一个Java解决方案.

Ber*_*sch 1

首先,我会检查javax.xml包中的类。该javax.xml.parsers包包含两种解析样式的解析器:SAXParser 和 DocumentBuilder。听起来您希望 DocumentBuilder 创建一个 DOM。您可以手动遍历 DOM(又慢又痛苦),也可以使用 XPath 标准来查找 DOM 中的元素。Java 对此的支持位于javax.xml.xpath.

XPathExpression xpath = XPath.compile("//@style");
Object results = xpath.evaluate(dom, XPathConstants.NODESET);
Run Code Online (Sandbox Code Playgroud)

您有责任将结果投射到 NodeList 并正确迭代,但这是获得您想要的结果的最直接方法。查看 Java 的 DOM API 以获取有关读取和更改值的更多信息。

我不相信 Java 中内置的 CSS 解析器有任何支持,但你可以看看这些项目:

这可能会帮助您实现目标。注意:Batik CSS 解析器已合并到更大的 Apache Batik 项目中:http://xmlgraphics.apache.org/batik/index.html ,该项目可能超出您的需要,但它是企业友好的许可证。