xml五大预定义实体用于转义特殊字符:<表示小于号,>表示大于号,&表示与符号,”表示双引号,’表示单引号,确保文档正确解析。
<(小于号)
为什么需要转义这些字符?
XML使用尖括号< >来定义标签,&用于引入实体引用。如果在文本内容或属性值中直接使用这些字符,解析器会误认为是结构标记。
例如,下面的写法是非法的:
<message>5 < 10 && value = “test” </message>
应改为:
<message>5
属性值中的字符转义
在属性值中,除了<和&必须转义外,引号的使用也需注意:
- 若属性用双引号包围,属性值内的双引号必须转义为 “
- 若属性用单引号包围,属性值内的单引号必须转义为 ‘
示例:
<note priority=”high”>Don’t forget!</note>
也可以换用单引号避免转义:
<note priority=’high’>Don’t forget!</note>
使用CDATA区段避免转义
对于包含大量特殊字符的文本(如代码片段、脚本),可以使用CDATA区段,其内部内容不会被解析器解析。
语法:
<![CDATA[ 你的原始文本 ]]>
例如:
<script> <![CDATA[ if (a < b && c > d) alert(“Hello”); ]]> </script>
注意:CDATA中不能包含]]>,否则会提前结束区段。
基本上就这些。只要记住五个预定义实体和它们的用途,在编写或生成XML时做相应替换,就能有效避免语法错误。对于复杂内容,优先考虑使用CDATA区段提升可读性。


