不应将哪个字符设置为XML文件中的值

时间:2015-02-12 14:45:25

标签: xml perl dom vbscript

我注意到当我使用"&"配置XML文件值时字符,然后XML文件无法正确打开

我想这是因为XML文件值不应该有某些字符作为&

"&"不应在XML文件中设置为值

如果有更多字符不能在XML中设置为值,请提供建议吗? (或者可能&字符是唯一的??)

来自XML"&"

的错误值示例
<FolderPath>\EEA\E1\C & W 100\AWQ</FolderPath>

XML的右线示例

 <FolderPath>\EEA\E1\C and W 100\AWQ</FolderPath>

2 个答案:

答案 0 :(得分:5)

安全的做法是始终如下逃避:

&  ⇒  &amp;
<  ⇒  &lt;
>  ⇒  &gt;
"  ⇒  &quot;
'  ⇒  &apos;

详细答案:

  • &在元素文本和属性值方面很特殊。请改用&amp;
  • <在元素文字中很特别。请改用&lt;
  • >本身并不特别。
  • "在由"分隔的属性值中特殊。请改用&quot;
  • '在由'分隔的属性值中特殊。使用&apos;代替 [1]
  • ]]>在元素文字中很特别。请改用]]&gt;
  • ]]>CDATA部分中有特殊之处。请改用]]>]]&gt;<![CDATA[
  • --不能用于评论。
  • 在XML中只能找到以下字符:0x0009,0x000A,0x00D,0x0020..0xD7FF,0xE000..0xFFFD,0x10000..0x10FFFF。没有办法包括其他人。

&amp;&lt;&gt;&quot;&apos;始终可以在元素文本和属性值中使用,即使没有必要这样做也是如此,所以安全的做法是始终逃避&<>"'。 (或者,除了单引号外,总是将它们全部转义,并且永远不要使用单引号作为属性值的分隔符。)


  1. 在HTML中,您必须使用&#39;。旧版本的Internet Explorer意外地不支持&apos;用于XHTML(基于XML的HTML)。因此,有些人也使用&#39;来表示XML。

答案 1 :(得分:1)

我会推荐你​​:http://www.w3schools.com/xml/xml_syntax.asp

  

某些字符在XML中具有特殊含义。

     

如果你放置一个像“&lt;”这样的字符在XML元素中,它会生成错误,因为解析器会将其解释为新元素的开头。

     

XML中有5个预定义的实体引用:

&lt;    <   less than
&gt;    >   greater than
&amp;   &   ampersand 
&apos;  '   apostrophe
&quot;  "   quotation mark

您可以使用以下方式验证XML: http://www.w3schools.com/xml/xml_validator.asp