PHP DomDocument结果为空<;李>;无结束标记的标记
我有一个html代码,其中包含:PHP DomDocument结果为空<;李>;无结束标记的标记,php,regex,Php,Regex,我有一个html代码,其中包含: <ul> <li></li> <li></li> <li></li> </ul> 这只发生在标记上。如何强制输出包含标记的结束标记 我试图用正则表达式解决问题,但找不到解决方案。如果您有正则表达式解决方案,我也会接受。根据 如果li元素后面紧跟着另一个li元素,或者如果父元素中没有更多内容,则可以省略li元素的结束标记 $html='1!'
<ul>
<li></li>
<li></li>
<li></li>
</ul>
这只发生在
标记上。如何强制输出包含
标记的结束标记
我试图用正则表达式解决问题,但找不到解决方案。如果您有正则表达式解决方案,我也会接受。根据
如果li
元素后面紧跟着另一个li
元素,或者如果父元素中没有更多内容,则可以省略li
元素的结束标记
$html='1!'
- 福
';
$doc=新文档;
$doc->loadHTML($html);
echo$doc->saveHTML();
印刷品
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<ul><li>
<li>foo</li>
<li>
<li>
</ul></body></html>
-
- 福
-
-
为什么?
元素的结束标记是可选的。@Quentin我知道,但更喜欢有结束标记。在我看来,没有它似乎有问题。行为似乎取决于是否有内容,而另一个li
元素正在处理它。@Scuzzy这不是重复的。这个问题是关于HTML的。这个问题是关于PHP对DOMDocument的实现。(鞋子不是袜子的复制品,即使它们都穿在脚上。)@WiktorStribiżew不是复制品见上文。谢谢你的回答。我知道这是可选的。买我喜欢的就是拥有它。
$html = '
<html>
<body>
<ul>
<li></li>
<li>foo</li>
<li></li>
<li></li>
</ul>
</body>
</html>
';
$doc = new DOMDocument;
$doc->loadHTML($html);
echo $doc->saveHTML();
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<ul><li>
<li>foo</li>
<li>
<li>
</ul></body></html>