xml – 什么时候到CDATA vs. Escape和Vice Versa?

我正在使用从数据库获取的值创建 XML文档.有时候由于遗留的实现,我会撤销一个包含char的值,如果没有正确地转义(& amp;),则该字符无效.

那么问题就变成了,应该是CDATA还是Escape?某些情况是否适合一对一?

例子:

<Email>foo&bar@domain.com</Email>

我在这里倾向于CDATA.

<Name>Bob & Tom</Name>

我会倾向于逃离这里.

我想避免盲目地CDATA的每一次,但从性能的角度看,这似乎是合乎逻辑的选择.这将总是比寻找无效的char更快,如果它存在然后换行.

思考?

CDATA主要用于IMO的可读性.就机器而言,CDATA和转义文本之间的距离最大不同于长度.也许逃脱的版本需要一点时间才能处理,但是我也许会说,因为除非你的应用程序主要是IO绑定,否则这不应该是一个重要的因素.

人们有可能正在阅读XML吗?如果没有,只需让XML解析器做它所做的,不用担心CDATA vs转义文本.如果人们会阅读这个XML,那么也许CDATA可以是更好的选择.

如果你有一个XML元素的值是XML,那么在这种情况下,CDATA可能是更好的选择.

有关更多信息,请参阅XML常见问题的问题When should I use a CDATA Marked Section?

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念