3

I need to parse HTML and find corresponding CSS styles. I can parse HTML and CSS separataly, but I can't combine them. For example, I have an XHTML page like this:

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

I have to search for "hello world" and find its class name, and after that I need to find its style from an external CSS file. Answers using Java, JavaScript, and PHP are all okay.

4

4 に答える 4

2

HTML パーサーである java のjsoupライブラリを使用します。たとえば、ここで 確認できます
。たとえば、次のようなことができます。

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

ニーズに合わせてライブラリをさらに探索できます。

于 2012-11-28T22:06:44.867 に答える
0

私が理解しているように、外部ファイルからスタイルシートを解析する機会があり、これによりタスクを簡単に解決できます。まず、複雑な html ファイルを簡単に解析できるようにする jquery のようなセレクター構文をサポートするjsoupで html ファイルを解析してみてください。次に、この以前のソリューションを確認して、css ファイルを解析します。これらのライブラリですべてのタスクが内部で行われると述べているため、完全な解決策にはなりません。これら 2 つを結合するためのグルー コードを作成する必要があります。

于 2012-11-28T22:02:01.687 に答える
0

同様の質問jQuery は要素に関連付けられたすべての CSS スタイルを取得できますか? . 多分cssオプティマイザーはあなたが望むことをすることができます.unused-css.comのオンラインツールを見てください.他のツールもリストされています.

于 2012-11-28T21:56:39.443 に答える
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を印刷します

于 2012-11-28T21:41:20.490 に答える