ElementIterator

ElementIterator (요소 반복자)

이름 그대로 Element 트리를 반복(iterate)하는 클래스입니다. 생성자는 Document 또는 Element를 인자로 받을 수 있습니다.

출처: Java API Reference

본문

Document를 인자로 받으면 반복의 루트는 document.getDefaultRootElement()의 반환 값입니다. 반복은 깊이 우선(depth-first) 방식으로 일어납니다. 경계 조건은 다음과 같이 처리됩니다.

  • first()current() 이전에 next()를 호출하면 루트가 반환됩니다.
  • next()는 목록의 끝을 나타내도록 null을 반환합니다.
  • previous()는 현재 요소가 루트이거나 next()가 null을 반환했을 때 null을 반환합니다.

ElementIterator는 Element 트리에 대한 잠금(locking)을 하지 않아 변경을 추적하지 않습니다. 요소 반복 중 변경이 일어나지 않도록 보장하는 것은 이 클래스 사용자의 책임입니다. 간단한 사용 예시는 다음과 같습니다.

public void iterate() {
    ElementIterator it = new ElementIterator(root);
    Element elem;
    while (true) {
        if ((elem = it.next()) != null) {
            // process element
            System.out.println("elem: " + elem.getName());
        } else {
            break;
        }
    }
}

주요 메서드·상세 (Methods & details)

주요 메서드는 이전 요소로 이동하는 previous(), 현재 요소를 얻는 current(), 다음 요소로 이동하는 next(), 반복을 루트로 되감는 first()입니다. replace(Element)로 반복 대상을 바꿀 수도 있습니다. 깊이 우선 순회를 수행합니다.

더 알아보기 (Learn more)

Java 공식 API