我经常看到人们在这里询问与XML/XSLT相关的问题,这些问题源于无法掌握CDATA如何工作(就像这一个).
我想知道 - 为什么它首先存在?如果没有它就不能没有XML,你可以放入CDATA部分的所有内容都可以表示为"本机"(XML-escaped).
我很欣赏CDATA可能会使得到的文档变得更小,但让我们面对它 - 无论如何XML都是冗长的.例如,通过压缩可以更轻松地实现小型XML文档.
对我来说,CDATA打破了标记和数据的清晰分离,因为你可以在肉眼看到标记的数据,我觉得这是件坏事.(这甚至可能是鼓励人们不充分地将字符串处理或正则表达式应用于XML的事情之一.)
那么:有什么好的理由可以使用CDATA?
jit*_*ter 11
CDATA部分只是为了方便人类作者,而不是为了程序.它们唯一的用途是让人类能够在XHTML页面中轻松包含例如SVG示例代码,而无需小心地将每个代码替换<为<等等.
这对我来说是预期的用途.不要使生成的文档减少几个字节,因为您可以使用<而不是<.
另外再取从上面(在XHTML SVG代码)样品也很容易让我检查了XHTML文件的源代码,并不仅仅是SVG代码进行复制粘贴,而不需要再次向后替换<用<.
PCDATA - 解析的字符数据,这意味着输入的数据将由解析器解析.
CDATA - 解析器不会解析在CDATA元素之间输入的数据.解析器将忽略CDATA部分内的文本.因此,恶意用户可以使用这些CDATA元素将销毁数据发送到应用程序.
CDATA部分以... <![CDATA[结尾]]>.
CDATA中唯一不能出现的字符串是]]>.
我们使用CDATA的唯一原因是:像Javascript代码这样的文本包含很多<和字符.为避免错误,脚本代码可以定义为CDATA,因为<单独使用会产生错误,因为解析器会将其解释为新元素的开头.类似地&,解析器可以将其解释为字符实体的开头.
| 归档时间: |
|
| 查看次数: |
5470 次 |
| 最近记录: |