- 締切済み
HTMLDocumentで要素を削除する方法
以下に示すような形式の行を大量に格納したHTMLDocumentがあります。 先頭から要素をいくつか(全体の3割とか)削除するにはどうしたらよいでしょうか? できればまとめて削除できると助かります。 また、n行ごとにとあるタグで括ってあれば可能、というのでも構いません。 <FONT>~</FONT><BR> <FONT><a href=~>~</a>~</FONT><BR> お知恵を拝借できれば助かります。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 0909union
- ベストアンサー率39% (325/818)
http://java.sun.com/javase/ja/6/docs/ja/api/javax/swing/text/html/HTMLDocument.html すみません。こっちでしたね。ようは、何でやろうが、最終的にHTMLで出力すれば、その間の過程なんてどうでもいいいかと。
- 0909union
- ベストアンサー率39% (325/818)
>javax.swing.text.html.HTMLDocument [技術者向] コンピューター > プログラミング > Java のカテゴリーとは言え素人レベルで、JavaもJavaScriptの区別もつかない人が、よく投稿してくるので、一般論を書きました。失礼しました。 基本的にJAVAでの使用はできます。ご存知かと思いますが、オブジェクトモデルとかフレームワークは言語やプラットフォームを越えて使用できうように、なってきています。ある意味DOM Level 1とかの規格は、このためにあるといって過言ではありません(多言語、多プラットフォーム)。 例題としては簡単に見つかります。 http://itpro.nikkeibp.co.jp/article/COLUMN/20090806/335244/ プラットフォームがWindowsであれば、.NETを使う方法もありますね。 私は実際の所XMLで作成しXML DOMとして使用しています。
- 0909union
- ベストアンサー率39% (325/818)
http://msdn.microsoft.com/en-us/library/ms533053(VS.85).aspx を参考にしてください。DOMを勉強しましょう。今のブラウザはほとんどがDOM1.0以上を対応しています。 削除は removeChild() removeNode() もちろん置き換えでも達成できますね replaceChild() replaceNode() 取得は検索して、for や whileでループするか上位のタグからまとめて削除。 getElementsByTagName() サンプルとかもあるので簡単にわかるかと思います。
補足
申し訳ない。 javax.swing.text.html.HTMLDocument に対してDOMを使用できるかどうかさっぱりわかりません。 ちとDOMの入門記事を当たってから考えます・・。
お礼
情報ありがとうございました。 クラス javax.swing.text.AbstractDocument から継承されたメソッドの中に getLength, remove, replace, がありました。見逃してた・・。 動いたコートはこんな感じになりました。後で見る人のために示しておきますね。 int len = (int)Math.floor(myDoc.jEdtLogHtml.getDocument().getLength() * 0.3); myDoc.jEdtLogHtml.getDocument().remove(1, len);