package corinis.util.xml; import java.util.Iterator; import org.w3c.dom.Element; import org.w3c.dom.Node; public class ElementAdapter implements Iterable<Element> { private Node start; public ElementAdapter(Node start) { this.start = start; } public Iterator<Element> iterator() { // TODO Auto-generated method stub return new ElementIterator(start); } private class ElementIterator implements Iterator<Element> { Node cur; Node next; public ElementIterator(Node start) { next = start; // make sure next is an Element while (next != null && !(next instanceof Element)) next = next.getNextSibling(); } public boolean hasNext() { return next != null; } public Element next() { cur = next; if (cur != null) { // make sure next is an Element do { next = next.getNextSibling(); } while (next != null && !(next instanceof Element)); } return (Element)cur; } public void remove() { // ignore } } }