我的表单帖子的标题值设置为:
$title = "Company & Sons";
$xmlDoc = new DomDocument('1.0', 'utf-8');
$node = $xmlDoc->createAttribute('title');
$node->value = $title;
...
$completed = $xmlDoc ->saveXML();
当我检查保存的XML时,它保存为:
<title> Company & Sons </title>
如何将其保存为&
?
答案 0 :(得分:2)
如果&
字符按原样保存,则您将不再拥有有效的XML。
因此,具有特殊含义的实体以XML格式转义;因此&
。
要解决此问题,您可以将字段声明为CDATA
:
<title>
<![CDATA[
Company & Sons
]]>
</title>
但是,在反序列化或读取XML时,您不必担心&
被转义。读者将正确地将转义值返回到其原始形式(与反序列化时JSON中的\u0001
unicode转义转换为有效字符编码的方式非常相似。)
tl; dr:你的输出很好,不要惊慌。