【问题标题】:php DOMDocument saveHTML missing close tag for empty tag li [duplicate]php DOMDocument saveHTML缺少空标签li的关闭标签[重复]
【发布时间】: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();

我希望看到&lt;ul&gt;&lt;li&gt;123&lt;/li&gt;&lt;li&gt;&lt;/li&gt;&lt;/ul&gt; 而不是&lt;ul&gt;&lt;li&gt;123&lt;/li&gt;&lt;li&gt;&lt;/ul&gt;,有人可以帮助我吗?

【问题讨论】:

  • 你应该使用标志LIBXML_NOEMPTYTAG
  • @Mohammad 不是 xml,它是 saveHtml。我尝试了LIBXML_NOEMPTYTAG 并得到了相同的结果。
  • @NigelRen 谢谢。 Option-Tags。如果 li 元素后面紧跟着另一个 li 元素,或者父元素中没有更多内容,则可以省略 li 元素的结束标记。
  • 这会添加空标签:$nodes = $DOMXPath-&gt;query('/html/body//*[not(*)][not(normalize-space())]'); foreach($nodes as $nodes__value) { $nodes__value-&gt;nodeValue = ''; } $DOMDocument-&gt;saveHTML();

标签: php document


【解决方案1】:

结束标签是可选的,Option-Tags。如果 li 元素后面紧跟着另一个 li 元素,或者父元素中没有更多内容,则可以省略 li 元素的结束标记。

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 2011-07-13
    • 2020-01-09
    相关资源
    最近更新 更多