3

こんにちはすべて私は次のようなhtml/textを持っています:

<html><head><style type="text/css">
</style></head>
<body><div style="font-family:times new roman,new york,times,serif;font-size:14pt">first text<br><div><br></div><div style="font-family: times new roman,new york,times,serif; font-size: 14pt;"><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><font size="2" face="Tahoma"><hr size="1"><b><span style="font-weight: bold;">one:</span></b> second text<br><b><span style="font-weight: bold;">two:</span></b> third text<br><b><span style="font-weight: bold;">three:</span></b> fourth text<br><b><span style="font-weight: bold;">five:</span></b> fifth text<br></font><br>

上記のhtmlコンテンツで「最初のテキスト」という名前のテキストを抽出したい注:このhtmlコンテンツは静的ではなく動的であるため、一般的な考え方はhtmlテキストの最初のプレーンテキストを取得することです。

4

3 に答える 3

3

にタグを付けたので、 Jsoupを使用しています。それはすでに良い選択です;)

Jsoupでそれを行う方法は次のとおりです。

String html = "<html><head><style type=\"text/css\"></style></head><body><div style=\"font-family:times new roman,new york,times,serif;font-size:14pt\">first text<br><div><br></div><div style=\"font-family: times new roman,new york,times,serif; font-size: 14pt;\"><br><div style=\"font-family: times new roman,new york,times,serif; font-size: 12pt;\"><font size=\"2\" face=\"Tahoma\"><hr size=\"1\"><b><span style=\"font-weight: bold;\">one:</span></b> second text<br><b><span style=\"font-weight: bold;\">two:</span></b> third text<br><b><span style=\"font-weight: bold;\">three:</span></b> fourth text<br><b><span style=\"font-weight: bold;\">five:</span></b> fifth text<br></font><br>";
Document document = Jsoup.parse(html);
String firstText = document.select(":containsOwn(text)").first().ownText();
System.out.println(firstText);

結果:

最初のテキスト

以下も参照してください。

于 2011-02-10T21:00:36.937 に答える
1

TagSoupなどの SAX スタイルの HTML パーサーを使用できます。

これを行うには、拡張を使用してパーサーを初期化しDefaultHandler、メソッドが初めてcharacters(...)呼び出されたときを検出して結果を保存します。

パーサーのセットアップ方法については、http: //sax.sourceforge.net/quickstart.html を参照してください。

于 2011-02-10T15:59:24.860 に答える
0

かなり単純なものが必要な場合は、Java MEプラットフォームで使用するために設計された私のPageScraperクラスを見てください。これは、ほとんどどこでも機能します。特別なことは何もありませんが、テキストストリームをタグと非タグに変換する簡単な方法です。属性の遅延読み込みを行うので、基本的にタグを無視している場合は非常にすばやく使用できます。

于 2011-02-10T15:54:16.100 に答える