2015-02-06 34 views
0

我已經創造了新的元素與DOM對象:設置的nodeValue內容的HTML

$doc = new \DOMDocument(); 
$link = $doc->createElement('a'); 
$link->setAttribute('href', '/#'); 
$link.nodeValue = '<b>Text</b>'; 
$html = $this->doc->saveHTML(); 

這個變量 「$ HTML」 包含的內容:

<a href="/#">&lt;b&gt;Text&lt;/b&gt;</a> 

我想輸出:

<a href="/#"><b>Text</b></a> 

如何正確設置「nodeValue」? 可以這樣做嗎?

非常感謝。

回答

1

通過使用DOMDocumentFragement和它的appendXML()方法

<?php 
$doc = new \DOMDocument(); 
$link = $doc->appendChild($doc->createElement('html')) 
    ->appendChild($doc->createElement('body')) 
    ->appendChild($doc->createElement('a')); 
$link->setAttribute('href', '/#'); 


$fragment = $doc->createDocumentFragment(); 
$fragment->appendXML('<b>text</b>'); 
$link->appendChild($fragment); 


echo $doc->saveHTML(); 

打印

<html><body><a href="/#"><b>text</b></a></body></html> 
+0

大,它的工作原理,謝謝。 – kevas 2015-02-06 14:45:27