- PR -

改行コードとインデントがないHTML出力はどのようにして実現しているのでしょうか?

投稿者投稿内容
okutin
ベテラン
会議室デビュー日: 2003/12/11
投稿数: 98
お住まい・勤務地: 広島
投稿日時: 2005-02-10 16:12
こんにちは。

引用:

torakiyojpさんの書き込み (2005-02-10 14:57) より:

確かに。ただ、他のサイトでもHTMLソースにインデントを使用してない所があったので、何か一般的なやり方があるのかと思いました。
つまり、それぞれで独自のやり方をしているから一概には言えないということですね?




HTMLソースのインデントとか改行って、入れるから入るのであって「勝手に入るから後から削除するもの」ではないですよ。
K
大ベテラン
会議室デビュー日: 2004/04/07
投稿数: 174
投稿日時: 2005-02-10 16:29
正直そんなにひっぱるほどの話題ではないと思いますが。。。

要するにHTMLにインデントや改行コードを入れるのは人間の都合(編集時の可読性等のため)であってブラウザにとってはいらないもの(単に無視する)なんですよ。

だから改行やインデントなんて自分の都合のいいように扱えばいいだけです。
たとえばJSPの編集後のビルド時にantのタスクで削除してもいいし、Filterを使って動的に消してもいいし。
torakiyojp
常連さん
会議室デビュー日: 2004/08/04
投稿数: 23
投稿日時: 2005-02-10 16:35
皆さん回答ありがとうございます。


meltingpotさんへ
> 出力ストリームを加工するフィルタの作り方は以下のdeveloperWorksの記事が参考になります。
> http://www-6.ibm.com/jp/developerworks/java/011116/j_j-tomcat.html

とてもわかりやすい記事を紹介していただき、ありがとうございます。
web.xml書き換えれば、そのまま使えそうな感じに見えます。


コブラさんへ
> 改行は、 Unix 上で開発された、末尾に LF のみが付加されてる HTML ファイルか、Windows 上で
開発された CR+LF が付加された HTML の違いだけちゃうのん?

試しに、GoogleのHTMLソースを、UTF-8で改行コードをLFに設定したエディタで開いてみたのですが、変わりませんでした。試し方が間違えているかもしれませんが。


なか-chanさんへ
> out.println()とout.print()の違いだけではないでしょうか?

そうですね、サーブレットでout.print()を使っている場合がありました。
忘れてました。


meltingpotさんへ
> XSLTを使うなどDOMを経由して生成したドキュメントの場合、改行コードが入らないことは良くあります。

そうなんですか。これは意識しなくても、改行コードが入らないということですね。



何か、かなり漠然とした質問をしてしまって、すみません。
改行コードとインデントがないHTMLをプログラムで作成できるということがわかったことと、特に意識しなくても、そうなることがあるということがわかって、とても勉強になりました。

皆さん、ありがとうございました。


torakiyojp
常連さん
会議室デビュー日: 2004/08/04
投稿数: 23
投稿日時: 2005-02-10 16:51
okutinさん、mogeさん回答ありがとうございます。

最初に、Googleのソースを見たときに、HTMLのファイルサイズを縮小する為に、改行コードとインデントを削っているのかと思いました。

それで、どういう手順で開発をしているのか興味を持って、こういう質問をしてしまいました。

> だから改行やインデントなんて自分の都合のいいように扱えばいいだけです。
たとえばJSPの編集後のビルド時にantのタスクで削除してもいいし、Filterを使って動的に消してもいいし。

実は、これが知りたかった答えでした、ありがとうございます。


くだらない質問をしてしまったようで、すみませんでした。

皆さん、本当にありがとうございました。
meltingpot
常連さん
会議室デビュー日: 2004/06/15
投稿数: 24
投稿日時: 2005-02-10 19:33
torakiyojpさんの元々の質問は「世間はどうしてるの?」的なニュアンスだと思うのです。

何のためにやっているのか(やっていないのか)。
どこでどのタイミングでどうやっているのか。

調査したり考えたりするに値する興味深い話題であると思います。

スキルアップ/キャリアアップ(JOB@IT)