小编典典
没错,HTML似乎没有缩进(其他人也很困惑)。即使加载了代码,XML仍然有效。
function tidyHTML($buffer) {
// load our document into a DOM object
$dom = new DOMDocument();
// we want nice output
$dom->preserveWhiteSpace = false;
$dom->loadHTML($buffer);
$dom->formatOutput = true;
return($dom->saveHTML());
}
// start output buffering, using our nice
// callback function to format the output.
ob_start("tidyHTML");
?>
foo barbar foo
It's like comparing apples to oranges.
// this will be called implicitly, but we'll
// call it manually to illustrate the point.
ob_end_flush();
?>
结果:
foo barbar foo
It's like comparing apples to oranges.
与saveXML()相同…
foo barbar foo
It's like comparing apples to oranges.
可能忘记了在loadHTML之前设置preserveWhiteSpace = false?
更新:
我现在记得几年前,我尝试过同样的事情,遇到了同样的问题。我通过应用一种肮脏的解决方法(对性能要求不高)解决了这个问题:我只是以某种方式在SimpleXML和DOM之间转换,直到问题消失。我想转换摆脱了那些节点。也许用dom加载,用导入simplexml_import_dom,然后输出字符串,再次用DOM解析它,
然后 漂亮地打印出来。据我记得这工作(但它 真的很 慢)。
2020-05-29