2

XML を作成して を使用している場合、部分文字列<![CDATA[...]]>を含む可能性のあるデータをエンコードするにはどうすればよい]]>ですか? でしょう]]&gt;か?CDATA コンテンツは文字どおりのコンテンツだといつも思っていたので、質問します。

4

4 に答える 4

8

それほど効率的でも読みやすいわけでもありませんが、これへのアプローチは書くことのようです..

]]]]><![CDATA[>
于 2009-02-12T06:46:23.870 に答える
2

2つのcdataタグを使用できます。最初のタグには]]が含まれ、2番目のタグには>が含まれます。

于 2009-02-12T06:58:10.173 に答える
-1

CDATA はある意味でリテラル コンテンツですが、もちろん、CDATA ブロックの終わりをマークする何らかの方法が必要であり、選択したものは文字列で何らかの方法で表現する必要があります。

あなたがしなければならないように、別の CDATA ブロック内に CDATA を含む XML ドキュメントを処理しなければならなかったとき、私はあきらめて、すべてを Base64 としてエンコードしました。次に、反対側がテキストを抽出してデコードします。

Base64 は、多くの言語 (私の場合は ASP.NET アプリの C# と Javascript) で ASCII 文字列をコード化およびデコードするための共通のサポートおよび/または単純なアルゴリズムを備えているため便利です。

于 2009-02-12T06:48:44.940 に答える
-2

エンティティは機能しないのですか?

このように: &93;&93;&gt;

または、それらの 1 つだけ: ]]&gt;

93 は latin1 用です。utf-8 でデータを送信する場合は、Unicode エンティティが必要になります。

補足として、CDATA ブロックでは許可されていない他の文字、いくつかの奇妙な引用と制御フロー文字があります。

于 2009-02-12T06:48:38.560 に答える