HTML を C# または JSP の出力文に埋め込む方法

HTML を貼り付けて Html to C# code または Html to JSP code を押すと、C# 側は 1 行につき 1 文の StringBuilder コードを、JSP 側は同じ行を <% %> ブロック内の out.println / out.print 呼び出しとして出力します。どちらも入力をテキストとして扱い、HTML の解析・実体参照のデコード・コードの実行は行いません。

変換はブラウザ内で実行され、オフラインでも動作します。出力は既存のプロジェクトに貼り付ける断片で、C# の StringBuilder や JSP の out オブジェクトが参照できる場所で使います。

  1. テキスト欄にマークアップを貼り付けます。
  2. C# の StringBuilder 断片は Html to C# code、<% %> ブロックは Html to JSP code を押します。
  3. Copy で結果全体を取得し、Clear で入力欄を空にして出力欄を再び隠します。
  4. 貼り付け先で断片を確認してください。このページはコードを書くだけで、コンパイルや実行はしません。

2 つの変換が出力するもの

2 つの変換が出力するもの

C# 側は StringBuilder sb = new StringBuilder(); で始まり、入力行ごとに 1 文を出力します。行の後ろに改行がある場合は sb.AppendLine("...")、改行で終わらない最終行は sb.Append("...") になります。AppendLine は実行環境の改行コードを追加するため、レスポンス出力では通常こちらの挙動が求められます。

JSP 側は同じ行単位の構造を <% と %> で囲みます。改行が続く行は out.println("...")、改行で終わらない最終行は out.print("...") となり、JSP ファイルは貼り付けたテキストを行単位で再現します。入力が空のときは空の <% %> ブロックを出力し、C# 側は StringBuilder の宣言だけを返します。

エスケープと改行

文字列リテラル内では、バックスラッシュは \\、二重引用符は \"、タブは \t、制御文字は \uXXXX として書き出されるため、貼り付けた 1 行は生成コードの 1 行のままです。アポストロフィと波括弧はそのまま渡されます。C# 側は AppendFormat ではなく Append / AppendLine を使うので、CSS や JSON に含まれる { や } が書式プレースホルダーとして解釈されたり、実行時に FormatException を起こしたりすることはありません。

テキスト欄は改行コードを正規化するため、CRLF や CR は LF として渡されます。入力末尾の改行は削除されず、末尾の AppendLine または println として残ります。最後の行が空の場合も空の文として保持されます。

このページが行わないこと

マークアップの解析や修正、&amp; のような実体参照のデコード、生成した断片のコンパイル確認は行いません。クラス・名前空間・import・出力呼び出しの追加もなく、貼り付けた HTML が完全かどうかの判定もできません。

このページの変換先は C# と JSP だけです。ASP・VB.NET・Perl・SWS の出力は、HTML を ASP・VB.NET・Perl・SWS の文に変換するページにあります。結果欄はボタンを押すまで表示されず、結果が空のまま Copy を押すと「コピーできませんでした。テキストを手動でコピーしてください。」と表示されます。

最近使ったツール: