XML を作成して を使用している場合、部分文字列<![CDATA[...]]>
を含む可能性のあるデータをエンコードするにはどうすればよい]]>
ですか? でしょう]]>
か?CDATA コンテンツは文字どおりのコンテンツだといつも思っていたので、質問します。
4 に答える
それほど効率的でも読みやすいわけでもありませんが、これへのアプローチは書くことのようです..
]]]]><![CDATA[>
2つのcdataタグを使用できます。最初のタグには]]が含まれ、2番目のタグには>が含まれます。
CDATA はある意味でリテラル コンテンツですが、もちろん、CDATA ブロックの終わりをマークする何らかの方法が必要であり、選択したものは文字列で何らかの方法で表現する必要があります。
あなたがしなければならないように、別の CDATA ブロック内に CDATA を含む XML ドキュメントを処理しなければならなかったとき、私はあきらめて、すべてを Base64 としてエンコードしました。次に、反対側がテキストを抽出してデコードします。
Base64 は、多くの言語 (私の場合は ASP.NET アプリの C# と Javascript) で ASCII 文字列をコード化およびデコードするための共通のサポートおよび/または単純なアルゴリズムを備えているため便利です。
エンティティは機能しないのですか?
このように: &93;&93;>
または、それらの 1 つだけ: ]]>
93 は latin1 用です。utf-8 でデータを送信する場合は、Unicode エンティティが必要になります。
補足として、CDATA ブロックでは許可されていない他の文字、いくつかの奇妙な引用と制御フロー文字があります。