Ошибка вполне понятна: нет способа DOMElement::next_sibling()
. Прочитайте документацию для DOMElement
и его родительского класса DOMNode
. Вы думаете о свойстве DOMNode::nextSibling
.
Однако nextSibling
получает следующий узел , а не следующий элемент . (Нет метода или свойства DOM, которое получает следующий элемент. Вам нужно продолжать использовать nextSibling
и проверять nodeType
, пока вы не нажмете другой элемент.) Ваш вопрос говорит, что вы хотите следующий узел, но я думаю, что вы на самом деле хотите следующий элемент (пустой <div>
). Это на самом деле довольно легко сделать с XPath, так почему бы вам не сделать это вместо этого?
Чтобы получить его немедленно:
$els = $xpath->query("//div[@name='node']/following-sibling::*[1]");
Чтобы получить его, когда у вас уже есть <div name="node">
:
$nextelement = $xpath->query("following-sibling::*[1]", $currentdiv);