protected function nextElement()
    {
        do {
            if (! $this->reader->read()) {
                return false;
            }

            // Pop previous levels from the stack
            $this->stack = array_slice($this->stack, 0, $this->reader->depth, true);

            // Push the current Element to the stack
            $this->stack[] = $this->reader->name;

            // Update the current Element XPath
            $this->current = implode('/', $this->stack);

            // Set skip to
            $this->skip = ($this->skip == $this->current) ? null : $this->skip;
        } while ($this->skip);

        return true;
    }