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

Which character should not be set as values in XML file

我注意到当我用“&”字符配置 XML 文件值时,XML 文件无法正确打开

我想这是因为 XML 文件值不应该有 &

这样的字符

并且“&”不应设置为 XML 文件中的值

如果XML中还有更多字符不应该设置为值,请指教? (或者也许只有 & 角色??)

来自 XML“&”

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

来自 XML

的右行示例
 <FolderPath>\EEA\E1\C and W 100\AWQ</FolderPath>

我建议您参考:http://www.w3schools.com/xml/xml_syntax.asp

Some characters have a special meaning in XML.

If you place a character like "<" inside an XML element, it will generate an error because the parser interprets it as the start of a new element.

There are 5 pre-defined entity references in XML:

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

您可以通过以下方式验证您的 XML: http://www.w3schools.com/xml/xml_validator.asp

安全的做法是始终按如下方式转义:

&  ⇒  &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 不小心也不支持 XHTML(基于 XML 的 HTML)的 &apos;。因此,有些人也将 &#39; 用于 XML。