XMLエスケープ/アンエスケープ
XMLの特殊文字を即座にエスケープまたはアンエスケープ
XML入力
エスケープ出力
XMLエスケープの例
特殊文字(&、<、>、"、')はXMLでエスケープする必要があります。通信テーマの例:
特殊文字を含む通話ログ
生のXML(メモに<、&、引用符が含まれる):
エスケープされた出力:
上のサンプルで通話ログをエディターに読み込めます。
XMLエスケープ/アンエスケープとは?
XMLはマークアップ用に特定の文字を予約しています:&、<、>、"、'。これらがテキストコンテンツや属性値に含まれる場合、エンティティ(&、<など)としてエスケープする必要があります。そうしないとパーサーが誤解釈します。W3C XML仕様でエンティティ参照が定義されています。アンエスケープは逆の処理で、エンティティを実際の文字に戻します。
このツールにはエスケープとアンエスケープの2つのモードがあります。上部で切り替えられます。どちらもブラウザ内で実行され、サーバーに送信されるものはないため、本番データや機密コンテンツに安全に使用できます。
このツールの使い方
モードを選択して貼り付け
特殊文字をエンティティに変換するにはエスケープ、元に戻すにはアンエスケープを選択してください。XML(またはエスケープされたテキスト)を左のエディターに貼り付けるか、ファイルをアップロードします。切り替えボタンでモードを変更できます。
出力を表示
右のパネルは自動的に更新されます。エスケープモードでは予約文字がエンティティに変換されます。アンエスケープモードではエンティティが実際の文字に変換されます。無効または不正な入力は予期しない結果になることがあります。必要に応じてXMLバリデーターで検証してください。
コピーまたはダウンロード
<strong>コピー</strong>で結果をクリップボードに、<strong>ダウンロード</strong>でファイルとして保存できます。JSONエスケープにはJSONエスケープを、URLエンコードにはXML URLエンコードを使用してください。
XMLエスケープが重要な場面
ユーザー入力や動的コンテンツをXMLに埋め込む場合、エスケープされていない<や&は解析を壊したりセキュリティ問題を引き起こす可能性があります。エスケープによりコンテンツがマークアップではなくテキストとして扱われます。二重にエスケープされたXML(データベースやAPIがXMLを文字列として保存している場合など)を受け取った場合、アンエスケープで余分な層を削除し、正しく解析できます。
よくある質問
いつエスケープが必要ですか?
ユーザー入力や特殊文字をXMLのテキストコンテンツや属性に埋め込む場合。ブラウザやパーサーは予約文字にエンティティを期待します。エスケープされていない<はタグの開始として解釈される可能性があり、&はエンティティの開始として解釈される可能性があります。
CDATAはどうなりますか?
CDATAセクション(<![CDATA[...]]>)は大きなテキストブロックのエスケープを回避します。ただし、CDATA内では]]>はまだエスケープまたは分割する必要があります。セクションを終了するためです。W3C XML仕様でCDATAの規則が定義されています。
データはプライベートですか?
はい。処理はブラウザ内のJavaScriptで完全に実行されます。サーバーにデータは送信されません。ツール使用中にブラウザのネットワークタブを開いて確認できます。
関連ツール
XMLエスケープとエンティティの詳細はW3C XMLエンティティ参照、W3C XML仕様、W3C XMLを参照。ブラウザでのXML解析はMDN DOMParserを参照。HTMLエンティティはHTML名前付き文字参照を参照。JSONエスケープはJSON仕様を参照。