我在PHP的DOMDocument中获得了一些h3
引用。
$dom = new DOMDocument();
$dom->loadHtml($content);
$h3s = $dom->getElementsByTagName('h3');
foreach($h3s as $h3) {
var_dump($h3->nodeValue);
}
我需要在h3
之后获取下一个元素。在这种情况下,它将是下一个h3
或文档末尾的所有元素。
它可以很容易地使用正则表达式,但我不想在这里使用它来解析HTML。
作为参考,该正则表达式是......
preg_match_all('/<h3>([^<]+)<\/h3>(.*?)(<h3|$)/', $content, $matches);
(这是脆弱的,因此需要正确的解析)。
那么我如何使用DOMDOcument从上面的正则表达式中使用$matches
中我期望的数据呢?
我查看了documentation,但找不到相应的JavaScript nextSibling
属性。
答案 0 :(得分:15)
$h3->nextSibling
和$h3->previousSibling
是您正在寻找的。 p>
getElementsByTagName
会返回DOMNodeList
,当您迭代它时会包含DOMNode
个元素。