私の質問はWhy are "control" characters illegal in XML 1.0?と似ていますが、XML仕様ではXMLの制御文字が許可されているのではなく、以下の問題の解決策を探しています。Servletからの文字列でXMLの制御文字CDATA
私は、ユーザーの要求に応じてXMLを含むStringを出力するサーブレットを持っています。 1つの特定の要素には、CDATAセクションが含まれています。このセクションには、ユーザー入力テキストが含まれている必要があります。
ここで、特定のケースでは、ユーザー入力にはU + 0001(制御文字)という文字が含まれています。そして私はUTF-8と文字セットを指定していても、サーブレットがエラーをスロー:
Error: not well-formed
Location:
<![CDATA[
私はそれを「XMLの安全」にするためにJavaのStringを処理できる方法はありますか?特に、CDATAセクションに置くと安全ですか?
私の質問がはっきりしていることを願います!事前に
おかげで、 ラジ
早急に対応してくれてありがとうSauer。私は、Stringを受け取り、XMLで安全でない文字を含む文字列を返す第三者APIが存在することを願っていました。一口! – ragebiswas
@Raj:違反する文字を削除するだけで問題ありませんか?それははるかに簡単かもしれません... –
サウアー、そう、それは私のために良いだろう。しかし、私は空白や改行などの制御文字を削除したくありません。 – ragebiswas