如何解析HTML并获得CSS样式

时间:2012-11-28 21:06:11

标签: java parsing html-parsing css-parsing

我需要解析HTML并找到相应的CSS样式。我可以分别解析HTML和CSS,但我无法将它们组合起来。例如,我有一个像这样的XHTML页面:

<html>
<head>
<title></title>
</head>
<body>
<div class="abc">Hello World</div>
</body>
</html>

我必须搜索“hello world”并找到它的类名,之后我需要从外部CSS文件中找到它的样式。使用Java,JavaScript和PHP的答案都可以。

4 个答案:

答案 0 :(得分:2)

在java中使用jsoup库,这是一个HTML Parser。你可以看到例如here
例如,你可以这样做:

String html="<<your html content>>";
Document doc = Jsoup.parse(html);
Element ele=doc.getElementsContainingOwnText("Hello World").first.clone(); //get tag containing Hello world
HashSet<String>class=ele.classNames(); //gives you the classnames of element containing Hello world

您可以进一步探索图书馆以满足您的需求。

答案 1 :(得分:0)

使用Java java.util.regex

String s = "<body>...<div class=\"abc\">Hello World</div></body>";
    Pattern p = Pattern.compile("<div.+?class\\s*?=\\s*['\"]?([^ '\"]+).*?>Hello World</div>", Pattern.CASE_INSENSITIVE);    Matcher m = p.matcher(s);
if (m.find()) {
    System.out.println(m.group(1));
}

打印abc

答案 2 :(得分:0)

类似问题Can jQuery get all CSS styles associated with an element?。也许css优化器可以做你想做的事情,看看unused-css.com它的在线工具,但也列出了其他工具。

答案 3 :(得分:0)

据我了解,您有机会从外部文件解析样式表,这使您的任务易于解决。首先尝试使用jsoup解析html文件,该文件支持jquery之类的选择器语法,可以帮助您更轻松地解析复杂的html文件。然后检查此previous解决方案以解析css文件。我不打算完全解决方案,因为我说这些库在内部完成所有任务,你唯一应该做的就是编写胶水代码来组合这两个。