Home > OS >  DOMDocument Check if html code is in <h2> tag
DOMDocument Check if html code is in <h2> tag

Time:08-28

I have a function that get all <h2> using DOMDocument, Now I want to check if there is any HTML tag between <h2>[here]</h2>, don't get the <h2> and skip to next.

My Code:

    foreach ($DOM->getElementsByTagName('*') as $element) {
       if ($element->tagName == 'h2') {
         $h = $element->textContent;
        }
     }

CodePudding user response:

I think the easiest thing is to just reuse getElementsByTagName("*") on the element and count how many items are found.

$html = <<<EOT
<html><body><h2>Hello</h2> <h2>World</h2><h2><strong>!</strong></h2></body></html>
EOT;

$dom = new DOMDocument();
$dom->loadHTML($html);
foreach($dom->getElementsByTagName('h2') as $h2) {
    if(!count($h2->getElementsByTagName('*'))){
        var_dump($h2->textContent);
    }
}

Demo here: https://3v4l.org/dI1e4

  • Related