2011-12-22 22 views
0

爲什麼在使用DomElement與DomText時實體的處理有所不同?PHP DOM DOMText與DomElement對實體的處理

示例代碼:

$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 

回答

1

的區別在於,createElement不接受(重音)和非法字符標記,如果是這樣,會忽略這種性格

+0

的,但爲什麼在處理這個不同?這個dom指定了嗎? – koen

+1

沒有文檔,createElement不處理輸入值,在這種情況下,您必須手動執行此操作,因爲xml的規範已經進行了createTextNode處理 – 2011-12-22 17:00:33