为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用DOMDocument删除元素?

如何使用DOMDocument删除元素?

PHP
婷婷同学_ 2019-12-04 10:30:09
是否可以从加载中删除元素DOM而不创建新元素?例如这样的事情:$dom = new DOMDocument('1.0', 'utf-8');$dom->loadHTML($html);foreach($dom->getElementsByTagName('a') as $href)    if($href->nodeValue == 'First')        //delete
查看完整描述

3 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

通过告诉父节点删除子节点来删除该节点:


$href->parentNode->removeChild($href);

请参阅DOMNode::$parentNode文档和DOMNode::removeChild()文档。


查看完整回答
反对 回复 2019-12-04
?
弑天下

TA贡献1818条经验 获得超8个赞

这花了我一段时间才能弄清楚,所以这里有一些澄清:


如果要从循环中删除元素(如OP的示例),则需要向后循环


$elements = $completePage->getElementsByTagName('a');

for ($i = $elements->length; --$i >= 0; ) {

  $href = $elements->item($i);

  $href->parentNode->removeChild($href);

}

DOMNodeList文档:如果向后迭代,则可以从DOMNodeList修改甚至删除节点


查看完整回答
反对 回复 2019-12-04
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

容易:


$href->parentNode->removeChild($href);


查看完整回答
反对 回复 2019-12-04
  • 3 回答
  • 0 关注
  • 567 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信