PHP的DOMDocument没有DTD,头和身体标签?(PHP DOMDocument witho

2019-06-25 18:55发布

是否有可能使用DOMDocument类,不允许它添加文档类型声明,头和身体标签? 我写我当前的代码位的服务器端包含,并且它正在一个已经完全形成了页面上呈现。 我不需要额外的标记。

Answer 1:

自PHP 5.3.6,您可以使用一个节点echo $DOMDocument->saveHTML($the_node_you_want_to_show)在这之前,我已经被滥用->saveXML()有小修正。 然而,你必须有1个周边包括节点(例如输出为<div>...somecontent and nodex....</div>或循环通过节点的孩子,如果你不想有1周围的标签;

$html = '';
foreach($rootnode->childNodes as $node){
    $html .= $rootnode->ownerdocument->saveHTML($node);
}


Answer 2:

@Wrikken说什么,或者对于PHP <5.3.6,只需使用正则表达式:

$html = preg_replace('~<(?:!DOCTYPE|/?(?:html|body))[^>]*>\s*~i', '', $dom->saveHTML());


文章来源: PHP DOMDocument without the DTD, head, and body tags?