• 締切済み

htmlの内容をテキストにする関数

言語は問わず、以下のような関数が存在するかどうか知りたいので教えてください。 html形式の文字列を「それをブラウザで表示したときにブラウザに表示されるテキスト」に変換する関数を探しています。 例えば "<b>あいう</b>えお<br>&lt;aaa&gt;♥" を入力すると、 出力が "あいうえお\n<aaa>(ハート)" を返すようなものです。 目的は、大量のhtml文章をテキストに変換することです。 出来れば(慣れているので)C、C++で方法があると嬉しいですが、自動化できるのであれば言語はなんでも構いません。

みんなの回答

  • bunthit
  • ベストアンサー率0% (0/1)
回答No.3

PHPにはstrip_tags()という便利関数がありましてな… &lt;と&gt;のデコードは同じくPHPであればhtml_entity_decode()が使えると思います。

参考URL:
http://php.net/manual/ja/function.strip-tags.php
全文を見る
すると、全ての回答が全文表示されます。
  • think49
  • ベストアンサー率59% (285/482)
回答No.2

HTMLからmarkdownへの変換ライブラリ。 http://pronama.jp/md/ http://pronama.azurewebsites.net/2014/05/16/html-to-markdown-libraries-and-tools/ ただし、CSSで複雑な装飾をしていないという前提条件があると思います。 float で display: block を流し込みしたり、display: table-cell; で table-layout を実現していたり、float: right; で挿入順を変更していたり、とCSS未適用の場合とレイアウトが変化している場合は期待通りに変換出来ないと思われます。 # Re: gisiriさん

全文を見る
すると、全ての回答が全文表示されます。
  • notnot
  • ベストアンサー率47% (4854/10269)
回答No.1

関数ではありませんが、「HTML テキスト化」で検索するといくつかツールがあるようです。

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

関連するQ&A

  • jsp 改行コードで改行させて表示したい

    はじめまして。 PostgreSQLから読み込んだ文字列データを表示させるtomcat+struts+servlet/jspを作成中です。 データの文字列に含まれる改行が、クライアントに表示された際に反映されず困っています。 過去ログも調べ、近い質問はありましたが、僕とは内容が微妙に違うようで、改めて質問させていただきました。 例えば、あるテーブルのある項目に、 A B C というデータ(A,Bそれぞれの後に改行のある3行の文字列)があるとします。 これを読み込みaction form bean(と言うのですか?setter/getterを定義する関数です)を介してjspに埋め込むと、できあがるhtmlでは、 ABC と改行されずに表示されます。 htmlで改行させるには「<BR>」が必要なのかと、データ文字列に0x0dや0x0a、または0x0d+0x0aがあれば「<BR>」に置き換えてaction form bean(?)のsetterに渡してjspを作ると、今度は、 A<BR>B<BR>C と「<BR>」が文字列として表示されます。 htmlをソース表示すると、「A&lt;BR&gt;B&lt;BR&gt;C」で、親切にも「<」「>」をそれぞれ「&lt;」「&gt;」に勝手に置き換えあくまで文字列として表示してくれるようです。 試しに改行コードを「&lt;BR&gt;」に置き換えても予想通りその部分は &lt;BR&gt; とそのまま表示され、そのソースは「&amp;lt;BR&amp;gt;」でした。 「<」や「&lt;」等をそれぞれ「&lt;」「&amp;lt;」のように置き換える作業は、どこが行っているのでしょうか。 また、改行位置で改行させるにはどうすればよろしいでしょう。 OSはwindowsXPです。 無知ゆえに、つまらないことで悪戦苦闘しているのかも知れませんが、経験も浅くてよく解りません。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • エクセル、こんな場合はどのような関数式を立てればよいでしょうか?

     会社の部材部門に勤務していますが、毎月の生産予定が下記のように組まれているとして      A   B   C   D   E 1 商品  台数  品番 2製品1  80  AAA 3製品2 100  BBB 4製品3  50  AAA 5製品2 200  AAA 6製品4 150  CCC 7製品1  40  AAA 8製品5  60  AAA 9製品2 180  BBB   ↓   ↓        のような配列で作られていて、仕事の都合上から以下のように品番が切り替わるごとにC列品番をキーワードにD列に累計合計を表示させたいのです。同じ品番が連続したり、1行のみや、細かく切り替わったり、不規則です。      A   B   C   D   E  1 商品  台数  品番  累計  2製品1  80  AAA  80  3製品2 100  BBB 100  4製品3  50  AAA  50  5製品2 200  AAA 250  6製品4 150  CCC 150  7製品1  40  AAA  40  8製品5  60  AAA 100  9製品2 180  BBB 180 10製品6 400  BBB 580 11製品2 350  BBB 930  SUMIF関数,SUM関数をIF関数にネストして式を作るような気がしているのですが、単純に条件に合うものの合計ならSUMIF関数または集計機能で求められますが、品番が替わる地点で、条件に合う品番のそこからの累計を求め、表示させる式が導けません。=IF(AND(C2<>C3)(B2>0),SUMIF($C$2:C2,C2,$B$B2:B2))のような式を組みましたが、B2からのトータル累計が出て、思うようにいきませんでした。どなたか教えていただけないでしょうか?

  • テキストエリアの初期値について

    テキストエリアに初期値としてタグを表示させたいのですが、 <textarea name=hoge>&lt;hr&gt;</textarea> とhtmlに記述してブラウザで見てみると、たいていのブラウザではちゃんと<hr>と表示されるのですが、ezweb端末から見るとちゃんと表示がされないのです。 これを解決するにはどうしたらよろしいのでしょうか?

  • 抽出条件入力用テキストボックスが空白の場合の抽出条件

    SQL初心者です。 今あるテーブル(TABLE)に | VALUE_A | VALUE_B | VALUE_C | VALUE_D | ----------------------------------------- | 000 | AAA | AAA | AAA | | 001 | AAA | AAA | BBB | | 002 | AAA | BBB | AAA | | 003 | BBB | BBB | BBB | | 004 | BBB | BBB | NULL | のようなデータが入っているとします。 Web上から VALUE_B VALUE_C VALUE_D に対しそれぞれテキストボックス入力フィールドから値を入力し検索を行うようにしたいのです。 [VALUE_B]=AAA [VALUE_C]=AAA [VALUE_D]=AAA と入力されれば VALUE_A:000 を検索結果として出します。 [VALUE_B]=AAA [VALUE_D]=AAA と入力されれば VALUE_A:000 VALUE_A:002 を検索結果として出します。 [VALUE_B]=AAA だけが入力された場合は VALUE_A:001 VALUE_A:002 VALUE_A:003 を検索結果として出します。 つまり、フォームのテキストボックスに入力された条件で抽出し、入力が無い場合は全件抽出を行いたいのです。 この場合、どのようなSQLを組めばよいのかわかりません。ANDやORだけでは対応できないような気がします。Oracleを始めたばかりということもあり、どのような関数を使えばよいのかもわかりません。どなたかご教授いただけませんでしょうか??よろしくお願いします。

  • ホームページビルダー でアフィリエイトのサイト

    ビルダーでアフィリエイトのサイトを作りたいのですが ページに楽天からのテンプレート貼り付けしたのですが ここからやり方がわかりません ★★★ ここにアフィリエイト用の画像のソースを入れる ★★★<BR> <BR> &lt;/td&gt;<BR> &lt;/tr&gt;<BR> &lt;tr&gt;<BR> &lt;td&gt;&lt;font size=&quot;-1&quot;&gt;<BR> <BR> ★★★ ここにアフィリエイト用のテキストリンクのソースを入れる ★★★<BR> &lt;br&gt;<BR> ★★★ ここに紹介文を入れる ★★★<BR> &lt;br&gt; はりつけたあとどうしたらいいのですか?

  • エスケープしたくない、けど、したいのもある

    とあるテキストデータ(.txt)を読み込み、それを表示するスクリプトをPHPで作りました。 その際、もしテキストデータにHTMLタグが入っている場合、そのまま出力させて、タグが有効になるようにしています。 (というかテキストを何も処理せずそのまま出力するだけ) (セキュリティ的には、テキストデータは信頼できる自サイトの同一ディレクトリに置いてあるものからしか読み込ませないようになっています) しかし、今度は逆に、もしそのテキストデータに「<hoge>」などの文字がふくまれていた場合、ブラウザはそれをタグと認識し、見えない表示になります。 本当は見えるようにそこは「&lt;hoge&gt;」と出力してほしいわけです。 かと言って、 echo htmlspecialchars($txt, ENT_QUOTES|ENT_HTML5, "UTF-8"); などエスケープして出力すると、今度はHTMLタグとして出力させたい「<br>」なども「&lt;br&gt;」として出力されてしまい都合が悪いです.. ようは、 「こんにちは<hoge><br>ほげ」 という文字列のテキストを、 「こんにちは&lt;hoge&gt;<br>ほげ」 と出力してほしい.. もちろんテキストは「hoge」であるとは限りません。 何かよい解決方法はないでしょうか? ご教示頂けましたら幸いです。

    • ベストアンサー
    • PHP
  • EXCELのcountif関数での大文字と小文字は区別できるのでしょうか

    EXCELのcountif関数での大文字と小文字を別々にカウントする方法をご存知の方がいましたら教えて下さい。 入力値 セルB2 aaa セルC2 aAa =COUNTIF(B2:C2,"aaa")とすると 2  が返ってきます。 aaaのみカウントしてaAaはカウントしないようにしたいのです。 もしかしたらcountifの制限なのでしょうか?そうだとしたら他の方法が思いつきません。ご存知の方みえましたら、教えて下さい。お願いします。

  • nEditというテキストエディタを改造して、自分用のテキストエディタを

    nEditというテキストエディタを改造して、自分用のテキストエディタを作ろうと考えているのですが…。 環境 OS:Windows XP 言語:C言語(bcc55) http://www.shiftup.net/ (シフトアップネット) というサイトの http://www.shiftup.jpn.org/flash/game2/ (ツクアド2) というコンテンツがあります。 子供でも簡単にブラウザ上でプログラミングができ、なお且つ簡単にゲームを公開できると言うコンテンツです。 ただ、その簡単さ故に大した機能もありません。 ファイルの分割ができない、関数と言う概念がない、マクロ定義もできない…。 そこで、ツクアド2用のテキストエディタを作成し、追加命令を作ろうと思います。 「ファイルを分割して管理し、結合する」 main.txt func0.txt , func1.txt , func2.txt という4つのファイルがあったとして、 main.txtに #include "func0.txt" (ツクアド2の言語使用ではセミコロンはコメント化なので;は使えない) #include "func1.txt" #include "func2.txt" と記述しコンパイルすると、新たにウィンドウが開いて3つのファイルを結合後のファイルを表示する。 「#enum」 #enum {A,B,C} と記述しコンパイルすると A = 0 B = 1 C = 2 に変換する などを実装したテキストエディタを作りたいです。 1からテキストエディタを作成するのにはあまりにも無知なのでオープンソースのnEditをダウンロードしてきました。 rcファイルに、コンパイル用のメニューを追加して、メッセージを受け取るところまでは作りました。 で、メッセージを受け取った後どうすればいいのかわからないんです。 正規表現を使って置換しようと思ったのですが、C言語って正規表現サポートしていないみたいです…。 そこでregex.hというライブラリを探してきて、使おうと思ったら、コンパイルエラーがでてしまいました。 どうやらstream_iteratorヘッダのtemplateという文が原因のようです。 で、よくソースを見てみるとC++のソースでしたorz .cでコンパイルできるわけもないので、.cppにファイルを変換してコンパイル…(。 したら今度はnEdit.cが驚くほど大量のエラーを履きました(C++はCの上位互換程度にしか考えてませんでしたが上手くいきませんでした。。) 流石に他人が書いたコードをcpp用にデバッグするのは厳しいです。。 なんとかする方法はないでしょうか。 他にC言語で正規表現を使えるようにする方法はありますか? それとも正規表現を使わなくても希望の動作が可能な方法はありますか?

  • SUMPRODUCT関数の使い方

    A列 aaa aaa bbb bbb ccc ccc と入力して、 「aaa」の個数と「bbb」の個数の合計を求める式を教えてください。 見た限りの答えは、「aaa」が2個、「bbb」が2個で4なのですが B1に 「=SUMPRODUCT(A:A="aaa",A:A="bbb")」 としたのですが、「0」が返ってきてしまいます。 B2に 「=SUMPRODUCT(COUNTIF(A:A,"aaa"),COUNTIF(A:A,"bbb"))」 だと、 4が返ってきますが A列を aaa aaa bbb にすると「3」が返ってきてほしいのに、2になってしまいます。 個数の合計を返す関数式をご教授ください。

  • シェル(ksh)でテキスト文書を変換

    以下のようなテキストファイルで、 3回目に出現する「111」を「222」に変換 するにはどのようにすればよいでしょうか? よろしくお願いします。 <元> AA111B111AAA111DDD111 A111C111DDDDDD111EEEE ~ <結果> AA111B111AAA222DDD111 A111C111DDDDDD222EEEE