有没有理由我们不能将未转义的&符号放在XML中

Dav*_*len 0 xml

我的客户想要编写我的xml文件<name>Smith & Jones</name>,而不是<name>Smith &amp; Jones</name>.

我找不到讨论这个的质量参考.

lon*_*day 7

XML规范(§2.4):

只有当用作标记分隔符或在注释,处理指令或CDATA部分中时,&符号(&)和左尖括号(<)才可以以其文字形式出现.它们在内部实体声明的字面实体价值内也是合法的; 见"4.3.2形成良好的解析实体".如果在其他地方需要它们,则必须使用数字字符引用或字符串"&"和"<"分别进行转义.

由于这种情况不符合所述类别,因此是非法的.

  • @Rich这不会是一个[格式良好的文档](https://www.w3.org/TR/REC-xml/#sec-well-formed)。“[违反格式良好约束是致命错误。](https://www.w3.org/TR/REC-xml/#sec-terminology)”;“定义:符合标准的 XML 处理器必须检测并向应用程序报告的错误。” (2认同)

Mau*_*ice 6

使用CDDATA标记在XML标记中插入这些字符,而无需对XML进行解析:

<name>Smith & Jones</name>
Run Code Online (Sandbox Code Playgroud)

<name><![CDATA[ Smith & Jones ]]></name>
Run Code Online (Sandbox Code Playgroud)

这样你也可以把简单的html与xml放在一起.

例如:http://www.w3schools.com/xml/xml_cdata.asp