我的表单帖子的标题值设置为:
$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>
如何将其保存为&
?
如果&
字符按原样保存,则将不再具有有效的XML。
正因为如此,具有特殊含义的实体在XML中被转义;从而产生CCD_ 3。
为了避免这种情况,您可以将字段声明为CDATA
:
<title>
<![CDATA[
Company & Sons
]]>
</title>
但是,在反序列化或读取XML时,实际上不必担心&
被转义。读取器将正确地将转义值返回到其原始形式(与反序列化时JSON中的'u0001
unicode转义转换为有效字符编码的方式非常相似)。
tl;医生:你的输出很好,不要惊慌