- ベストアンサー
HTMLタグ抽出方法の問題と解決策
- getAttributeによるHTMLのタグ抽出についての問題が発生しています。
- プログラムの一部であるhandleStartTagメソッドにおいて、<img src~から始まるタグの抽出ができません。
- この問題の解決策を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
コード全体がわからないので想像ですが・・・。 handleStartTagってことは、HTMLEditorKit.ParserCallback継承クラスを定義して、その中のメソッドをオーバーライドしたのだけどうまく動かない、ということでしょうか?? コードを見ましたが、<img>タグは取得できません。なぜなら、<img>タグはhandleStartTagではハンドリングされないからです。handleStartTagは、開始タグの処理のためのものであり、開始・終了の2つのタグによって構築されるものの開始部分を処理するためのものです。したがって、<img>タグを処理したいなら、開始と終了を持たない単独タグを処理するhandleSimpleTagをオーバーライドする必要があります。 public void handleSimpleTag(Tag tag, MutableAttributeSet attr, int pos) { if (tag.equals(HTML.Tag.IMG)) { String src = (String)attr.getAttribute(HTML.Attribute.SRC); System.out.println(src); } super.handleSimpleTag(tag, attr, pos); } 例えば、こんな感じで<img>タグを処理できると思います。 HTMLEditorKit.ParserCallbackには、この他に終了タグを処理するhandleEndTagとかテキスト部分を処理するhandleText、コメントを処理するhandleCommentなどのメソッドがあります。これらを一通り全て実装してみれば、それぞれの役割分担がわかりますよ。
お礼
で、出来ました... なぜ抽出できないのかさっぱりわからなかったのですが、ほんとにありがたいです。 ありがとうございました。