如果您使用适当的类或库,他们将为您进行转义。许多 XML 问题都是由字符串连接引起的。
只有五个:
" "
' '
< <
> >
& &
转义字符取决于特殊字符的使用位置。
可以在W3C 标记验证服务中验证这些示例。
安全的方法是在文本中转义所有五个字符,但是,三个字符"
, '
和>
不需要在文本中转义:
<?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/>
HTML 有自己的一组转义码 ,涵盖了更多的字符。
也许这会有所帮助:
在 SGML,HTML 和 XML 文档中,称为字符数据和属性值的逻辑结构由字符序列组成,其中每个字符可以直接显示(表示自身),或者可以由称为字符引用的一系列字符表示,其中有两种类型:数字字符引用和字符实体引用。本文列出了在 HTML 和 XML 文档中有效的字符实体引用。
该文章列出了以下五个预定义的 XML 实体:
quot "
amp &
apos '
lt <
gt >
根据万维网联盟(w3C) 的规范 ,除了用作标记分隔符或用于注释,处理指令或 CDATA 部分之外, 有 5 个字符在 XML 文档中不得以其字面形式出现。 。在所有其他情况下,必须使用相应的实体或根据下表的数字引用替换这些字符:
原始字符 XML 实体替换 XML 数字替换
< &lt; &#60;
> &gt; &#62;
“ & #34;
&&安培; &#38;
' ' &#39;
注意,上述实体也可以在 HTML 中使用,除了' ,这是在 XHTML 1.0 中引入的,并未在 HTML 4 中声明。出于这个原因,为了确保复古兼容性, XHTML 规范建议使用&#39;代替。