Я получил некоторые ссылки h3
в DOMDocument PHP.
$dom = new DOMDocument(); $dom->loadHtml($content); $h3s = $dom->getElementsByTagName('h3'); foreach($h3s as $h3) { var_dump($h3->nodeValue); }
Мне нужно получить следующие элементы после h3
s. В этом случае все элементы будут соответствовать следующему h3
или концу документа.
Он легко работал с регулярным выражением, но я не хочу использовать его здесь для разбора HTML.
Для справки, это регулярное выражение …
preg_match_all('/<h3>([^<]+)<\/h3>(.*?)(<h3|$)/', $content, $matches);
(Что хрупко, отсюда и желание правильного разбора).
Итак, как я могу использовать DOMDOcument данные, которые я ожидаю в $matches
match из обычного выражения выше?
Я проверил документацию , но не смог найти эквивалент свойства nextSibling
JavaScript.
$h3->nextSibling
и $h3->previousSibling
– это то, что вы ищете.
getElementsByTagName
возвращает DOMNodeList
, который содержит элементы DOMNode
когда вы перебираете его.