xml特殊字符包括<、>、&、”、’,需用实体引用、&、”、’替换,或用CDATA区段包裹含特殊字符的文本,但CDATA内不可出现]]>且不能嵌套,属性值中仍需使用实体引用。

在XML文档中,某些字符具有特殊含义,如果直接使用可能会导致解析错误。为了确保XML文档的正确性和可读性,这些特殊字符需要进行适当处理。
哪些是XML特殊字符
以下五个字符在XML中有特殊用途,不能直接出现在文本内容或属性值中:
- <:用于开始一个标签
- >:用于结束一个标签
- &:用于引入实体引用
- “:用于包围属性值(当使用双引号时)
- ‘:用于包围属性值(当使用单引号时)
使用预定义实体引用替换
XML定义了五个预定义实体来表示这些特殊字符,推荐在文档中使用这些实体引用代替原始字符:
- 代表 <
- > 代表 >
- & 代表 &
- “ 代表 “
- ‘ 代表 ‘
例如,如果你想表达 5 < 10,应写成:5
使用CDATA区段包裹文本
如果你有一段包含多个特殊字符的文本(比如脚本代码或大段不等式),可以使用CDATA区段避免逐个转义。
CData的语法是:
在CDATA区段内,大多数特殊字符都可以原样使用,除了]]>本身。
示例: d) { alert("hello"); }]]>
注意事项
虽然可以使用实体引用或CDATA来处理特殊字符,但仍需注意:
- 自定义实体未被广泛支持,建议只使用五个预定义实体
- CDATA不能嵌套,且内容中不能出现
]]> - 属性值中的特殊字符仍需用实体引用表示,即使在CDATA外
- 确保编码声明(如UTF-8)与实际文件编码一致,避免乱码问题
基本上就这些。只要记住关键字符的实体写法,或合理使用CDATA,就能安全地在XML中包含特殊符号。


