【发布时间】:2018-10-25 15:17:36
【问题描述】:
$doc = new DOMDocument();
$doc->loadHTML('<ul><li>123</li><li></li></ul>', LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD | LIBXML_COMPACT | LIBXML_NOERROR);
echo $doc->saveHTML();
我希望看到<ul><li>123</li><li></li></ul> 而不是<ul><li>123</li><li></ul>,有人可以帮助我吗?
【问题讨论】:
-
你应该使用标志
LIBXML_NOEMPTYTAG -
@Mohammad 不是 xml,它是 saveHtml。我尝试了
LIBXML_NOEMPTYTAG并得到了相同的结果。 -
@NigelRen 谢谢。 Option-Tags。如果 li 元素后面紧跟着另一个 li 元素,或者父元素中没有更多内容,则可以省略 li 元素的结束标记。
-
这会添加空标签:
$nodes = $DOMXPath->query('/html/body//*[not(*)][not(normalize-space())]'); foreach($nodes as $nodes__value) { $nodes__value->nodeValue = ''; } $DOMDocument->saveHTML();