DomDocument removeChild in foreach reindexing the dom

前端 未结 4 1366
梦毁少年i
梦毁少年i 2021-01-18 11:25

I am trying to delete p tags with data-spotid attribute

        $dom = new DOMDocument();
        @$dom->loadHTML($description);         


        
4条回答
  •  暗喜
    暗喜 (楼主)
    2021-01-18 11:49

    We can use like this:

            $dom = new DOMDocument();
            @$dom->loadHTML($description);
            $pTag = $dom->getElementsByTagName('p');
            $count = count($pTag)
            for($i = 0; $i < $count; $i++) {
                /** @var DOMElement $value */
                $value = $pTag[$i];
                $id = $value->getAttribute('data-spotid');
                if ($id) {
                    $i--;$count--;
                    $value->parentNode->removeChild($value);
                }
            }
    

提交回复
热议问题