
DOMNode::compareDocumentPosition 함수는 두 노드 간의 관계를 비교하여 결과를 반환하는 함수입니다.
이 함수는 다음과 같은 결과를 반환할 수 있습니다.
- DOCUMENT_POSITION_DISCONNECTED : 두 노드가 연결되지 않은 경우
- DOCUMENT_POSITION_PRECEDING : 첫 번째 노드가 두 번째 노드의 이전 노드인 경우
- DOCUMENT_POSITION_FOLLOWING : 첫 번째 노드가 두 번째 노드의 다음 노드인 경우
- DOCUMENT_POSITION_CONTAINS : 첫 번째 노드가 두 번째 노드의 부모 노드인 경우
- DOCUMENT_POSITION_CONTAINED_BY : 첫 번째 노드가 두 번째 노드의 자식 노드인 경우
- DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC : 구현에 따라 추가적인 정보를 제공하는 경우
예를 들어, 두 노드가 동일한 노드인지, 부모 노드인지, 자식 노드인지와 같은 정보를 얻으려면 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$node1 = $document->getElementsByTagName('div')->item(0);
$node2 = $document->getElementsByTagName('div')->item(1);
$result = $node1->compareDocumentPosition($node2);
if ($result & DOCUMENT_POSITION_PRECEDING) {
echo "첫 번째 노드가 두 번째 노드의 이전 노드입니다.";
} elseif ($result & DOCUMENT_POSITION_FOLLOWING) {
echo "첫 번째 노드가 두 번째 노드의 다음 노드입니다.";
} elseif ($result & DOCUMENT_POSITION_CONTAINS) {
echo "첫 번째 노드가 두 번째 노드의 부모 노드입니다.";
} elseif ($result & DOCUMENT_POSITION_CONTAINED_BY) {
echo "첫 번째 노드가 두 번째 노드의 자식 노드입니다.";
} elseif ($result & DOCUMENT_POSITION_DISCONNECTED) {
echo "두 노드가 연결되지 않았습니다.";
}
이러한 방법으로 DOMNode::compareDocumentPosition 함수를 사용하여 두 노드 간의 관계를 비교할 수 있습니다.
2025-06-13 02:05