我可以通过PHP的DOMDocument获得兄弟姐妹吗?

时间:2010-12-15 00:21:23

标签: php html domdocument

我在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属性。

1 个答案:

答案 0 :(得分:15)

$h3->nextSibling$h3->previousSibling是您正在寻找的。

getElementsByTagName会返回DOMNodeList,当您迭代它时会包含DOMNode个元素。

http://www.php.net/manual/en/class.domnode.php