PHP DOM列表元素


PHP DOM list element

我试图添加html列表(ul)的新元素,结果我得到无效的html文件

public function createChild()
{
    $args=func_get_args();
    $child = $this->dom->createElement($args[1]);
    $result=$args[0]->appendChild($child);
    return $result;
}

如何使用

$p=$tpl->createChild($div,'p');
$list=$tpl->createChild($div,'ul');
$tpl->createChild($list,'li');
结果

<div class="Menu" id="Base">
<p></p>
<ul><li></ul>
</div>

如果我想在其他地方加上li,也不要加上结束标签

li HTML标签通常需要一个值。

您可以尝试为li使用另一个addChild,并将值作为参数。

if ($args[2] != '') {
   $child = $this -> dom -> createElement($args[1], $args[2]);
]

的第二部分
<li></li>

是省略。对于空值使用空格:'&bsp;'。这可能是你的页面上的一些HTML错误的结果。

结果应该是:

<div class="Menu" id="Base">
<p></p>
<ul><li>&bsp;</li></ul>
</div>

$tpl -> createChild($list, 'li', '&bsp;');

对整个页面进行HTML验证

您使用过验证器吗?

取决于文档类型。这是不是无效的 HTML5至少,似乎li s不需要关闭

http://www.w3.org/TR/html5/grouping-content.html the-li-element

Tag omission in text/html:
An li element's end tag ***may be omitted*** if the li element is immediately followed by 
another li element or if there is no more content in the parent element.