在生成xml时常常忽略了转义字符的处理,导致了生面的xml文件有问题


在生成xml时常常忽略了转义字符的处理,导致了生面的xml文件有问题,可以用下面的函数实现字符的转义

xml在处理一些特殊字符时需要转义,下面是一个简单的转义函数
function xmlencode($tag)
{
$tag = str_replace("&", "&", $tag);
$tag = str_replace("<", "&lt;", $tag);
$tag = str_replace(">", "&gt;", $tag);
$tag = str_replace("'", "&apos;", $tag);
$tag = str_replace("/"", '&quot;', $tag);
return $tag;
}

 

 

XML 特殊字符处理

在XML中,有一些符号作为XML 的标记符号,一些特定情况下,属性值必须带有这些特殊符号。 下面主要是讲解一些常用的特殊符号的处理

 

例一: 双引号的使用。

双引号作为XML 属性值的开始结束符号,因此无法在值中直接使用"". 处理方式可以分为两种。

 a: 属性值中没有'(单引号) ,那么可以用单引号'' 作为属性值的开始结束符号

<add key="IPhone" value="apple"/>  ...属性值为 ("apple").

解决:  <add key="IPhone" value=’"apple"‘/> 

 

 b: 属性值中有'(单引号) ,也有双引号。 如...属性值为 ("'apple").

<add key="IPhone" value="&quot;&apos;apple&quot;"/> 

下表为 XML 标记使用的字符列出了五种内置实体。

实体                                               实体引用                                                      含义

lt                                                    &lt;                                                               < (小于号)

gt                                                  &gt;                                                             > (大于号)

amp                                               &amp;                                                         & (“and”符)

apos                                              &apos;                                                          '(撇号或单引号)

quot                                              &quot;                                                          "(双引号)

如果字符可能会使 XML 分析器错误地解释文档结构,请使用实体,而不要键入字符。&apos; 和 &quot; 实体引用最常用在属性值中。