我需要在XML文档中转义哪些字符?
哪些字符必须在XML文档中转义,或者我可以在哪里找到这样的列表?
如果您使用适当的班级或图书馆,他们会为您逃避。 许多XML问题是由字符串连接引起的。
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个特殊字符不得在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