如何使用DOMDocument删除元素?

是否可以从加载中删除元素DOM而不创建新元素?例如这样的事情:


$dom = new DOMDocument('1.0', 'utf-8');

$dom->loadHTML($html);


foreach($dom->getElementsByTagName('a') as $href)

    if($href->nodeValue == 'First')

        //delete


婷婷同学_
浏览 574回答 3
3回答

慕虎7371278

通过告诉父节点删除子节点来删除该节点:$href->parentNode->removeChild($href);请参阅DOMNode::$parentNode文档和DOMNode::removeChild()文档。

弑天下

这花了我一段时间才能弄清楚,所以这里有一些澄清:如果要从循环中删除元素(如OP的示例),则需要向后循环$elements = $completePage->getElementsByTagName('a');for ($i = $elements->length; --$i >= 0; ) {  $href = $elements->item($i);  $href->parentNode->removeChild($href);}DOMNodeList文档:如果向后迭代,则可以从DOMNodeList修改甚至删除节点

慕莱坞森

容易:$href->parentNode->removeChild($href);
打开App,查看更多内容
随时随地看视频慕课网APP