• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:getAttributeによるHTMLのタグ抽出について)

HTMLタグ抽出方法の問題と解決策

このQ&Aのポイント
  • getAttributeによるHTMLのタグ抽出についての問題が発生しています。
  • プログラムの一部であるhandleStartTagメソッドにおいて、<img src~から始まるタグの抽出ができません。
  • この問題の解決策を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#49664
noname#49664
回答No.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などのメソッドがあります。これらを一通り全て実装してみれば、それぞれの役割分担がわかりますよ。

kamakuragengorou
質問者

お礼

で、出来ました... なぜ抽出できないのかさっぱりわからなかったのですが、ほんとにありがたいです。 ありがとうございました。

関連するQ&A