No.1ベストアンサー
- 回答日時:
一気に取得できるようなAPIはありませんが、
自分で作るとなったときに便利なものはあります。
javax.swing.text.html.parser.ParserDelegatorと、
javax.swing.text.html.HTMLEditorKit.ParserCallback
を使うと、HTMLタグの解釈は楽だと思います。
(substringで部分文字列を切り取るようなことは不要です。)
ちょっと長くて申し訳ないですが、サンプルです。
実際に動かして試してみてください。
----------------------------------------
import java.io.*;
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.html.parser.ParserDelegator;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.HTML;
public class ParserTest{
/**
* 引数でHTMLファイルを指定
*/
public static void main(String[] args) throws IOException, FileNotFoundException{
new ParserTest(args[0]);
}
public ParserTest(String file)throws IOException, FileNotFoundException{
ParserDelegator parser = new ParserDelegator();
HTMLEditorKit.ParserCallback mycallback = new MyCallBack();
parser.parse(new FileReader(file), mycallback, true);
}
private static class MyCallBack extends HTMLEditorKit.ParserCallback{
boolean td = false;
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos){
if (t.equals(HTML.Tag.TD)){
td = true;
}
}
public void handleText(char[] data, int pos){
if (td){
System.out.println(new String(data));
}
}
public void handleEndTag(HTML.Tag t, int pos){
if (t.equals(HTML.Tag.TD)){
td = false;
}
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jFrameを使って複数の画面を生...
-
eclipseに記述したjavaファイル...
-
どうしてもプログラムが動いて...
-
文字列を次々に表示するアプリ...
-
Javaで常駐するソフトを作って...
-
JButtonの改行したラベルがリロ...
-
「例外 *** は対応する try 文...
-
javaの課題でコンパイルエラー...
-
Selenium IDEでexportしたコー...
-
System.err. printlnとSystem.o...
-
IF関数でEmpty値を設定する方法。
-
ORA-01858: 数値を指定する箇所...
-
javaで質問です。 文字列2023/2...
-
動的配列が存在(要素が有る)か...
-
yyyymmddからyyyy/mm/d...
-
javamailで複数人にメールを送...
-
System.out.printlnの出力先
-
JavaのStringクラスに「外字」...
-
大量のデータを読み込んで表示...
-
EXCEL VBA で、0から?1から?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
setAttribute(String, int)は適...
-
Java での グローバルIP取得
-
「例外 *** は対応する try 文...
-
Javaを使ってデジタル時計を作...
-
jFrameを使って複数の画面を生...
-
ActionForm form にnullが入っ...
-
HTMLでのTableタグデータ取得方法
-
(急募)JavaカレンダーをGUI可に...
-
生年月日と今日の日付から年齢...
-
干支の計算で。。。
-
<forEach> 内で供給された "ite...
-
ファイル名を動的に生成したい
-
Javaで常駐するソフトを作って...
-
フレームの×ボタンを押しても閉...
-
JAVA 乱数で同じ数字を出さな...
-
文字列を次々に表示するアプリ...
-
ColabでのPytorchのエラー
-
importするには java.io.*; imp...
-
データの外挿について
おすすめ情報