【发布时间】:2011-10-18 03:07:29
【问题描述】:
<![CDATA[ 和 ]]> 不允许在 <![CDATA[ … ]]> 块内。这是可以理解的。
现在,我必须在 <![CDATA[ … ]]> 块内传输用户输入的数据。恶意用户可能会输入<![CDATA[ 或]]> 或两者。
问题是:处理这种情况的首选方法是什么?
- 剥离
<![CDATA[和]]>? - 用空格替换它?
- 向用户发送错误消息?
- 或者有官方的实际传输方式吗?
【问题讨论】:
-
为什么要编写自己的 XML 库?已经有很多成熟的了。
-
@Quentin:在服务器和台式机上,确实有足够的库来完成这项工作。但我为嵌入式系统(Android)开发。并且那里需要的库仅从版本 2.2 开始可用。但我们向客户承诺至少 2.0 的兼容性。但我是一个“真正的”程序员,我不介意自己做。接受的答案可能令人惊讶,但有时答案确实是:“你做错了,试试这个替代方案”,我可以接受。我不再使用 CDATA,而是选择编码
<>&"'。 -
请注意,CDATA 内容仅限于编码中可用的字符。数字实体引用 (&nnn;) 可以对整个 Unicode 集进行编码,而不管编码如何,甚至是 ASCII。所以我支持 Martin,改用数字字符引用。
标签: xml xml-serialization cdata