• 締切済み

HTMLDocumentで要素を削除する方法

以下に示すような形式の行を大量に格納したHTMLDocumentがあります。 先頭から要素をいくつか(全体の3割とか)削除するにはどうしたらよいでしょうか? できればまとめて削除できると助かります。 また、n行ごとにとあるタグで括ってあれば可能、というのでも構いません。 <FONT>~</FONT><BR> <FONT><a href=~>~</a>~</FONT><BR> お知恵を拝借できれば助かります。

みんなの回答

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.3

http://java.sun.com/javase/ja/6/docs/ja/api/javax/swing/text/html/HTMLDocument.html すみません。こっちでしたね。ようは、何でやろうが、最終的にHTMLで出力すれば、その間の過程なんてどうでもいいいかと。

osu_neko09
質問者

お礼

情報ありがとうございました。 クラス javax.swing.text.AbstractDocument から継承されたメソッドの中に getLength, remove, replace, がありました。見逃してた・・。 動いたコートはこんな感じになりました。後で見る人のために示しておきますね。 int len = (int)Math.floor(myDoc.jEdtLogHtml.getDocument().getLength() * 0.3); myDoc.jEdtLogHtml.getDocument().remove(1, len);

全文を見る
すると、全ての回答が全文表示されます。
  • 0909union
  • ベストアンサー率39% (325/818)
回答No.2

>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)
回答No.1

http://msdn.microsoft.com/en-us/library/ms533053(VS.85).aspx を参考にしてください。DOMを勉強しましょう。今のブラウザはほとんどがDOM1.0以上を対応しています。 削除は removeChild() removeNode() もちろん置き換えでも達成できますね replaceChild() replaceNode() 取得は検索して、for や whileでループするか上位のタグからまとめて削除。 getElementsByTagName() サンプルとかもあるので簡単にわかるかと思います。

osu_neko09
質問者

補足

申し訳ない。 javax.swing.text.html.HTMLDocument に対してDOMを使用できるかどうかさっぱりわかりません。 ちとDOMの入門記事を当たってから考えます・・。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • <p>要素をインライン要素にしての右寄せ

    <p>要素をインライン要素にしての右寄せ 【以下、HTML】 .text{ font-size:12px; font-weight:normal; margin:0px; padding:25px 0px 0px 35px; } <div class="text"> <img src="-" style="vertical-align:-2px;margin:0px 10px 10px 15px;"><a href="-">リンク</a><p style="text-align: right;display:inline;">あいうえお</p><br></div> 上記の「あいうえお」の部分を画像やリンクと並列したく、インライン要素で右寄せしたいんですがどうしたらいいでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • 見やすくなるように、table 要素を使いたいです

    ヤフーオークションの商品説明ページにて、現状↓ のタグのままだと 見にくいということで<table>タグをつけるよう上司に言われてしまいました。 私自信、テンプレートの文字を変えるくらいしかhtmlの知識がないので どこをどう変更すればよいのか分かりません。 様々なhtmlに関するページを見ましたが一朝一夕で身につくはずもなく 本日中に仕上がらないと思うので途方に暮れています。 どなた様か知識をお持ちの方のご回答をお待ちしておりますm(_ _)m 出品内容全体を枠で囲むのではなく、 【お支払い方法】 【お取引の流れ】 【営業時間等】   をそれぞれ枠で囲むようにしたいです。 <A HREF=http://abc.jp/index.html TARGET=_blank><FONT COLOR=blue><B><img src="http://abc.jp/banner.gif"></B></FONT></A><br> ご閲覧ありがとうございます。<br> 落札者様に安心、満足していただけるお取引を心がけております。 <TABLE WIDTH=700 CELLSPACING=0 CELLPADDING=10 BORDER=0> <TR> <TD BGCOLOR=#4e8919> <B><FONT SIZE=3 COLOR=#FFFFFF>出品物</FONT></B></TD> </TR> <TR> <TD><FONT SIZE=3 COLOR=#000000> <商品名> の出品となります。 商品説明。 </FONT></TD> </TR> <TR> <TD BGCOLOR=#60992e> <B><FONT SIZE=3 COLOR=#FFFFFF>お支払い方法</FONT></B></TD> </TR> <TR> <TD><FONT SIZE=3 COLOR=#000000>【銀行振り込み】 ジャパンネット銀行、ゆうちょ銀行、みずほ銀行、住信SBIネット銀行、じぶん銀行、セブン銀行からお選びいただけます。<br> 【かんたん決済】 かんたん決済(銀行決済) </FONT></TD> </TR> <TR> <TD BGCOLOR=#75a749> <B><FONT SIZE=3 COLOR=#FFFFFF>お取引の流れ</FONT></B></TD> </TR> <TR> <TD><FONT SIZE=3 COLOR=#000000>1.落札後取引ナビにてお取引内容をお伺い致しますので、ご確認後、ご連絡お願い致します。<br> 2.ご連絡頂いた後折り返しお振込先情報などをご案内いたします。<br> 3.ご入金確認後、かんたん決済手続き確認後(お支払方法の項目を必ずお読み下さい。) </FONT></TD> </TR> <TR> <TD BGCOLOR=#8cb667> <B><FONT SIZE=3 COLOR=#FFFFFF>営業時間等 </FONT></B></TD> </TR> <TR> <TD><FONT SIZE=3 COLOR=#000000>午前10時~深夜0時<BR> ご不明な点などありましたら<BR> <A HREF=mailto:info@abc.jp?Subject=&body= TARGET=new><FONT COLOR=blue>info@abc.jp</FONT></A> までどうぞ♪ <BR> </FONT></TD> </TR> </TABLE> <BR> <TABLE WIDTH=700 CELLSPACING=0 CELLPADDING=5 BORDER=0> <TR> <TD BGCOLOR=#F1F1F1><CENTER><FONT SIZE=2 COLOR=#888888>在庫確認は<A HREF=http://abc.jp/banner.gif TARGET=_blank><FONT COLOR=blue><B><img src="http://abc.jp/banner.gif"></B></FONT></A><FONT COLOR=#666666 文字列 FONT></A>からどうぞ</FONT></CENTER></TD> </TR> </TABLE> <BR><BR> </CENTER>

  • PHPでHTMLファイルを解析して配列へ・・・

    phpを使用して、下記のhtmlファイルを外部から取得して、解析してMySQLに格納したいと考えています。 問題となったのは、全部の記述が一行で書かれているので、strstrで探してstr_replaceで書き換えて・・・ といった作業をどのようにしていいかわかりません。 結果的には、出現順に多次元配列に$hairetu[] = array(categ => 【カテゴリ】, url => 'http://xxxxxxx.xx' , title => 【タイトル】);という形で収めていきたいです。 以下、解析元ファイルの記述例ですが、このような形式で1000件以上はあります。 <font color="#000000">【カテゴリ】</font><br><a href="http://xxxxxxx.xx">【タイトル】</a><br>【リンク先説明・・・】<br><font color="#000000">【カテゴリ2】</font><br><a href="http://xxxxxxx2.xx">【タイトル2】</a><br>【リンク先説明・・・2】<br>...

    • ベストアンサー
    • PHP
  • 空要素タグ??

    ブログのSEO対策の為に以下のページに自分のページURLを入れ タグが上手く書けているかをチェックしました ​http://openlab.ring.gr.jp/k16/htmllint/htmllinte.html​ すると、その中の回答に 空要素タグ の要素には空白さえも含めることはできません。 という問題点を指摘されました これの意味は XMLの Content of Elements(J)では、空要素タグは、<tag></tag> のように開始タグと終了タグをくっつけて書かなければならないとされてます。つまり、空白も含めることはできません。 という事です そして対象となる部分は以下のタグのどこかにあるようなのですが まったく検討がつきません どこがエラーの対象なのでしょうか? ちなみにブログはMTですのでカスタマイズは問題ありません よろしくお願いします <h2 class="archive-header"><$MTBlogName encode_html="1"$>項目一覧</h2> <div class="entry" id="entry-999"> <MTCategories> <h3 class="entry-header"><a href="<$MTCategoryArchiveLink$>"> <$MTCategoryLabel cutfirstchar="4"$></a></h3> <$MTCategoryDescription$> <div class="entry-content"> <div class="entry-body"> <MTEntries lastn="999"> <a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>&nbsp;|&nbsp; </MTEntries> </div> <p class="entry-footer"></p> </div> </MTCategories> </div> <p><br /></p> <div class="gotop"><a href="#TOP">このページのトップへ&uarr;</a></div> </div> </div>

  • 配列要素へのリファレンスと、要素の追加・削除について

    ActivePerl v5.8.8 build 820 を使用しています。 配列要素へのリファレンスを取得し、その後要素の追加又は削除を行った場合 元の要素を参照し続けます。 (1) 要素の追加 @list = qw/a b c d/; $p = \$list[1]; print("$$p\n"); splice(@list, 1, 0, 'x'); print("$$p\n"); # 'b' が表示される # $list[2] を参照 ($list[1] ではない) (2) 要素の削除 @list = qw/a b c d/; $p = \$list[1]; print("$$p\n"); splice(@list, 1, 1); print("$$p\n"); # 'b' が表示される 質問1 これは perl の仕様としての動作でしょうか? それとも、実行系やバージョン などの環境に依存するものでしょうか? 質問2 要素の削除の場合、削除直後なのでたまたま元の値が表示されただけで、 削除した要素 'b' が格納されたメモリ空間はいつ上書きされるかわからない 状態なのでしょうか? それとも、上書きされることはないのでしょうか?

    • ベストアンサー
    • Perl
  • jQueryで書き換えた要素のリセット

    jQueryで書き換えた要素のリセット 多分かなり初歩的な質問ですが、すいません。 jQueryでDOMの書き換えをやりたいのですが、その場合、書き換える前の状態にリセットするような関数?はありますでしょうか。 ないとすれば、書き換える前の要素を取り出しておいて、もう一度代入するような方法しかないでしょうか。 具体的にやりたいのは、ある条件の時のみaタグのURLを書き換え、条件から外れると元のURLに戻る、というものです。 素のhtml <a href="http://www.hoge.com/"></a> 条件を満たしているとき <a href="http://www.mogamoga.com/"></a> 条件を満たしていないとき <a href="http://www.hoge.com/"></a> 詳しい方おられましたら、どうかご教授ください。 よろしくお願いいたします。

  • 秀丸の正規表現を使って<FONT color="#ff0000">~~~</FONT>を消したい

    こんにちは。質問させていただきます。 タイトルの通りなのですが、何千行にも渡る文章中のほとんどに 下記の様なタグがふってあるとします。 <FONT color="#ff0000">の部分は当然様々な色を使ってますし<FONT face="Osaka,MS ゴシック">や <FONT color="#ff0000" FONT face="Osaka,MS ゴシック">もあります。 <FONT color="#ff0000">~様々な文章1~</FONT><BR> <FONT color="#ff0022">~様々な文章2~</FONT><BR> <FONT color="#ff0033">~様々な文章3~</FONT><BR>     ↓ ~様々な文章1~<BR> ~様々な文章2~<BR> ~様々な文章3~<BR> それを上記のように文章のみを残して開始タグと閉じタグだけを削除したいのですが、 効率のよい方法ってありますでしょうか? 全てを消すのではなく部分的に消したいため困っております。 例えば、最初にフォントの開始タグだけを消してしまうと、 </FONT>タグは他の必要なタグと混ざってしまい消せなくなってしまいます。 正規表現がまだ全然未熟なもので…。どうかご指導お願いします┏○

  • 要素の中央表示 CSS or HTML

    こんにちは。現在、自分でHPを作成しています。以下の要素を、画面の垂直方向からも水平方向からも               A  B  C の様に中央になるように表示したいのですが、そのやり方がわかりません。どなたか教えていただける方いらっしゃいましたら、どうぞよろしくお願い致します。 要素↓ <A href="" style="text-decoration:none"><FONT size="4">A</FONT></A> <A href="" style="text-decoration:none"><FONT size="4">B</FONT></A> <A href="" style="text-decoration:none"><FONT size="4">C</FONT></A> PS:以下のページを参照してトライしてみましたが、何もページに何も反映されませんでした。(私の書き方が間違っていた可能性が高いです。) http://www.stylish-style.com/csstec/basic/p-vertical.html

    • ベストアンサー
    • HTML
  • <a href=""

    は、 aが要素でhrefがタグですか? それとも aがタグでhrefが要素ですか?

    • ベストアンサー
    • HTML
  • dom要素のhtml取得について-get()

    dom要素のhtml取得について-get()メソッドを使用するのがいいのか? don要素のhtmlを取得したいと考えていますが うまくいきません。 以下htmlです。 ------------------------------------------------- <div id="hoge"> <div class="day-number">16</div> <div class="kurasuhoge"><a href="http://hogeURL.com" class="anker">○</a></div> <div class="day-number">17</div> <div class="kurasuhoge"><a href="http://hogeURL2.com" class="anker">○</a></div> </div> ------------------------------------------------- この中のアンカータグを取得し配列に格納したいです。以下のように格納出来れば理想です。 var hairetsu = {16:'<a href="http://hogeURL.com" class="anker">○</a>',17:'<a href="http://hogeURL2.com" class="anker">○</a>']; まずはアンカータグを取得と思い以下を書きました。 ------------------------------------------------- var hensu = $("#hoge .anker").parent().get(); alert(hensu); ------------------------------------------------- 結果[object HTMLDivElement],[object HTMLDivElement] と表示されてしまいます。 今getメソッドを使用していますが 他にいいメソッドがあればアドバイスいただけたら嬉しいです。 まとめますと 「#hogeの中の.anker要素をもつhtmlソースを摘出し配列に格納したいです。」 修正方法をご教示いただければ幸いです。