是否可以从加载中删除元素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()文档。
弑天下
TA贡献1818条经验 获得超8个赞
这花了我一段时间才能弄清楚,所以这里有一些澄清:
如果要从循环中删除元素(如OP的示例),则需要向后循环
$elements = $completePage->getElementsByTagName('a');
for ($i = $elements->length; --$i >= 0; ) {
$href = $elements->item($i);
$href->parentNode->removeChild($href);
}
DOMNodeList文档:如果向后迭代,则可以从DOMNodeList修改甚至删除节点
- 3 回答
- 0 关注
- 567 浏览
添加回答
举报
0/150
提交
取消