2015-02-06 38 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