DOMDocument loadHTMLFile()被重新格式化

时间:2015-10-27 19:19:05

标签: php dom

我有以下脚本:

$incldoc = new DOMDocument();

libxml_use_internal_errors(true);
$incldoc->loadHTMLFile($filename, LIBXML_HTML_NODEFDTD | LIBXML_HTML_NOIMPLIED);
libxml_use_internal_errors(false);

echo $incldoc->saveHTML();

加载此文件:

<div monkey="123"></div>
<div>
    <h1>Hello!</h1>
</div>
<monkey>test</monkey>

当它得到输出时,它看起来像这样:

<div monkey="123">
    <div>
        <h1>Hello!</h1>
    </div>
    <monkey>test</monkey>
</div>

无论如何我是否加载文件而不进行格式化?

1 个答案:

答案 0 :(得分:0)

这有点长,但是怎么样:

$doc = new DOMDocument();
$doc->loadXML('<root/>');

$fragment = $doc->createDocumentFragment();
$fragment->appendXML(file_get_contents($filename));
$doc->documentElement->appendChild($fragment);

$html = implode(
    array_map(
        function($node) use ($doc) {
            return $doc->saveHTML($node);
        },
        iterator_to_array($doc->documentElement->childNodes)
    )
);

echo $html;