如果我使用saveHTML()没有可选DOMnode参数,它按预期工作:
$html = '<html><body><div>123</div><div>456</div></body></html>';
$dom = new DOMDocument;
$dom->preserveWhiteSpace = true;
$dom->formatOutput = false;
$dom->loadHTML($html, LIBXML_HTML_NODEFDTD);
echo $dom->saveHTML();
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)<html><body><div>123</div><div>456</div></body></html>
但是当我添加一个DOMNode参数来输出文档的一个子集时,它似乎忽略了该formatOutput属性并添加了一堆不需要的空格:
$body = $dom->getElementsByTagName('body')->item(0);
echo $dom->saveHTML($body);
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)<body> <div>123</div> <div>456</div> </body>
是什么赋予了?这是一个错误吗?有解决方法吗?
如果您知道您的文档也将是有效的 XML,您可以使用saveXML()...
$html = '<html><body><div>123</div><div>456</div></body></html>';
$dom = new DOMDocument;
$dom->preserveWhiteSpace = true;
$dom->formatOutput = false;
$dom->loadHTML($html, LIBXML_HTML_NODEFDTD);
$body = $dom->getElementsByTagName('body')->item(0);
echo $dom->saveXML($body);
Run Code Online (Sandbox Code Playgroud)
这使...
<body><div>123</div><div>456</div></body>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
318 次 |
| 最近记录: |