PHP DOM DomText与实体的DOMELENT处理

PHP DOM DomText与实体的DOMELENT处理,php,xml,dom,entities,Php,Xml,Dom,Entities,为什么在使用DomeElement和DomText时对实体的处理会有所不同 示例代码: $text = 'this&that or this& that'; $document = new \DOMDocument; $p1 = $document->createElement('p', $text); // versus $p2 = $document->createElement('p'); $p2->appendChild($document-&

为什么在使用DomeElement和DomText时对实体的处理会有所不同

示例代码:

$text = 'this&that or this& that';
$document = new \DOMDocument;

$p1 = $document->createElement('p', $text);
// versus
$p2 = $document->createElement('p');
$p2->appendChild($document->createTextNode($text));

var_dump($p1->nodeValue); // thisthat
var_dump($p2->nodeValue); // this&that or this&that

不同之处在于,
createElement
不接受标记中的(重音)和非法字符,如果接受,将忽略此类字符

,但为什么处理方式不同呢?是否指定了此dom?没有文档,createElement不处理输入值,在这种情况下,您必须手动执行此操作,因为xml的规范