我需要解析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的答案都可以。
答案 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)