(PHP 8 >= 8.4.0)
DOMNode::compareDocumentPosition — Сравнивает положение двух узлов
Метод сравнивает положение другого узла относительно текущего.
other
Узел, положение которого требуется сравнить относительно положения текущего узла.
Метод возвращает битовую маску из констант семейства
DOMNode::DOCUMENT_POSITION_*
.
Пример #1 Пример сравнения положений двух узлов методом DOMNode::compareDocumentPosition()
<?php
$xml = <<<XML
<root>
<child1/>
<child2/>
</root>
XML;
$dom = new DOMDocument();
$dom->loadXML($xml);
$root = $dom->documentElement;
$child1 = $root->firstElementChild;
$child2 = $child1->nextElementSibling;
var_dump($root->compareDocumentPosition($child1));
var_dump($child2->compareDocumentPosition($child1));
?>
Результат выполнения приведённого примера:
int(20) // Это DOMNode::DOCUMENT_POSITION_CONTAINED_BY | DOMNode::DOCUMENT_POSITION_FOLLOWING int(2) // Это DOMNode::DOCUMENT_POSITION_PRECEDING