我需要在XML文档中转义哪些字符?

哪些字符必须在XML文档中转义,或者我可以在哪里找到这样的列表?


如果您使用适当的班级或图书馆,他们会为您逃避。 许多XML问题是由字符串连接引起的。

XML转义字符

只有五个:

"   "
'   '
<   &lt;
>   &gt;
&   &amp;

转义字符取决于特殊字符的使用位置。

这些示例可以在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个特殊字符不得在CDATA部分中转义:

<?xml version="1.0"?>
<valid>
<![CDATA["'<>&]]>
</valid>

处理说明

XML处理指令中不得转义所有5个特殊字符:

<?xml version="1.0"?>
<?process <"'&> ?>
<valid/>

XML与HTML

HTML有它自己的一组转义代码,涵盖了更多的字符。


也许这将有助于:

XML和HTML字符实体引用列表

在SGML,HTML和XML文档中,称为字符数据和属性值的逻辑结构由字符序列组成,其中每个字符可以直接显示(表示自己),或者可以由一系列称为字符引用的字符表示,其中有两种类型:数字字符引用和字符实体引用。 本文列出了在HTML和XML文档中有效的字符实体引用。

该文章列出了以下五个预定义的XML实体:

quot  "
amp   &
apos  '
lt    <
gt    >

根据万维网联盟(W3C)的规范,在XML文档中有5个字符不得以文字形式出现,除非用作标记分隔符或在注释,处理指令或CDATA部分中使用。 在所有其他情况下,必须根据下表使用相应的实体或数字引用来替换这些字符:

原始字符 XML实体替换 XML数字替换
<&lt; &#60;
>&gt; &#62;
“&quot;&#34;
&&amp; &#38;
'' &#39;

注意,上述实体也可以用于HTML,除了' ,这是在XHTML 1.0中引入的,并未在HTML 4中声明。出于这个原因,为确保兼容性,XHTML规范建议使用&#39; 代替。

链接地址: http://www.djcxy.com/p/29921.html

上一篇: What characters do I need to escape in XML documents?

下一篇: How do I read and parse an XML file in C#?