在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个特殊字符不得转义。
<?xml version="1.0"?>
<valid>
<![CDATA["'<>&]]>
</valid>
在XML处理指令中,所有5个特殊字符不得转义。
<?xml version="1.0"?>
<?process <"'&> ?>
<valid/>
XML与HTML
HTML有它自己的一套转义代码,涵盖了更多的字符。
也许这将有所帮助。
在SGML、HTML和XML文档中,被称为字符实体的逻辑结构 逻辑结构被称为字符 数据和属性值包括 字符的序列,其中每个 字符可以直接表现为 (代表自己),或者可以 用一系列的字符来表示 称为字符参考,其中 有两种类型:一种是数字型的 字符引用和字符 实体引用。这篇文章列出了 的字符实体引用 在HTML和XML文档中是有效的。
那篇文章列出了以下五个预定义的XML实体。
quot "
amp &
apos '
lt <
gt >