NodeFilter
NodeFilter (노드 필터링 인터페이스)
필터(filter)는 노드를 "걸러내는(filter out)" 방법을 아는 객체예요.
본문
NodeIterator나 TreeWalker에 NodeFilter가 주어지면, 순회 로직은 다음 노드를 반환하기 전에 필터를 적용해요. 필터가 노드를 받아들이면 그 노드를 반환하고, 그렇지 않으면 다음 노드를 찾아 거부된 노드가 없었던 것처럼 처리해요.
DOM은 필터를 직접 제공하지 않아요. NodeFilter는 사용자가 자신의 필터를 구현할 수 있게 해 주는 인터페이스일 뿐이에요. 필터는 노드 간 이동 방법이나 순회되는 데이터 구조를 알 필요가 없어서 작성하기 쉽고, 하나의 필터를 여러 종류의 순회에 재사용해 코드 재사용을 높일 수 있어요.
결정 상수로는 FILTER_ACCEPT(노드 받아들이기), FILTER_REJECT(노드와 자식 거부), FILTER_SKIP(이 노드 건너뛰기)가 있고, 표시할 노드 타입을 정하는 SHOW_ALL, SHOW_ELEMENT, SHOW_TEXT, SHOW_COMMENT, SHOW_DOCUMENT 등의 상수가 있어요.
acceptNode(Node n) 메서드가 필터의 핵심이며, 순회가 노드를 반환할지 여부를 결정해요.