有没有办法在输出中保留非标准DOM元素(在这种情况下'<%..%>')?看下面的代码:

时间:2016-04-13 15:34:46

标签: php domdocument

有没有办法在输出中保留非标准DOM元素(在这种情况下'<%..%>')?

请参阅下面的代码:

$html = '<html>';
$html .= '<body>';
$html .= '<% recipient.name %> ';
$html .='</body>';
$html .='</html>';

$document = new \DOMDocument('1.0');
$internalErrors = libxml_use_internal_errors(true);
$document->loadHTML($html);

libxml_use_internal_errors($internalErrors);

$out = $document->saveHTML();
print $out;

我收到了这个输出:

<html>
<head><meta content="text/html; http-equiv=" content-type></head> 
<body> </body>
</html>

1 个答案:

答案 0 :(得分:0)

如果输入是有效的XML,您可以将模板标记包装在<![CDATA[…]]>中,loadXML将它们视为文本节点:

$html = '<html>';
$html .= '<body>';
$html .= '<![CDATA[<% recipient.name %>]]>';
$html .='</body>';
$html .='</html>';

$document = new \DOMDocument();
$document->loadXML($html);
print $document->saveHTML();

// <html><body><% recipient.name %></body></html>