这里建议有两种方法可以获取 DOMDocument 节点的外部 HTML:如何返回 DOMDocument 的外部 html?
我感兴趣的是为什么他们似乎以不同的方式对待HTML实体。
例:
function outerHTML($node) {
$doc = new DOMDocument();
$doc->appendChild($doc->importNode($node, true));
return $doc->saveHTML();
}
$html = '<p>ACME’s 27” Monitor is $200.</p>';
$dom = new DOMDocument();
@$dom->loadHTML($html);
$el = $dom->getElementsByTagname('p')->item(0);
echo $el->ownerDocument->saveHtml($el) . PHP_EOL;
echo outerHTML($el) . PHP_EOL;
输出:
<p>ACME’s 27” Monitor is $200.</p>
<p>ACME’s 27” Monitor is $200.</p>
这两种方法都使用 saveHTML(),但由于某种原因,该函数在最终输出中保留了 html 实体,而直接使用节点上下文调用则不会。谁能解释一下为什么 - 最好有某种权威的参考?saveHTML()
呼唤远方