什么字符必须在XML文档中转义,或者在哪里可以找到这样的列表?
如果你使用合适的类或库,他们会为你转义。许多XML问题由字符串连接引起。
XML转义字符
只有五个:
" " ' ' < < > > & &
转义字符取决于使用特殊字符的位置。
示例可以在W3C Markup Validation Service验证。
文本
安全的方法是在文本中转义所有五个字符,但是,三个字符“,”和>不需要在文本中转义:
<?xml version="1.0"?> <valid>"'></valid>
安全的方式是在属性中转义所有五个字符,然而,>字符不需要在属性中转义:
<?xml version="1.0"?> <valid attribute=">"/>
如果引号是“:”,则不必在属性中转义该字符:
<?xml version="1.0"?> <valid attribute="'"/>
同样,如果引号是’,则不需要在属性中转义:
<?xml version="1.0"?> <valid attribute='"'/>
注释
所有5个特殊字符不得在注释中转义:
<?xml version="1.0"?> <valid> <!-- "'<>& --> </valid>
CDATA
所有5个特殊字符不得在CDATA节中转义:
<?xml version="1.0"?> <valid> <![CDATA["'<>&]]> </valid>
处理指令
所有5个特殊字符不能在XML处理指令中转义:
<?xml version="1.0"?> <?process <"'&> ?> <valid/>
XML与HTML
HTML有its own set of escape codes,覆盖了更多的字符。