没有DTD,head和body标签的PHP DOMDocument?

时间:2012-06-26 22:18:00

标签: php domdocument doctype

是否可以使用DOMDocument类并且不允许它添加doc类型声明,head和body标签?我正在编写服务器端包含的当前代码,并且它正在一个已经很好的页面上呈现。我不需要额外的标签。

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

从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);
}