public function iteratorNextNode()
    {
        // INIT
        $iteratorPosition       = null;
        $this->iteratorPosition = false;
        $nextNode               = false;

        do {
            if ($nextNode) {
                next($this->tsData);
            }

            $currentNode = current($this->tsData);

            if ($currentNode !== false) {
                // get key
                $iteratorPosition = key($this->tsData);

                // check if node is subnode or value
                if (substr($iteratorPosition, -1) == '.') {
                    // next subnode fond
                    $this->iteratorPosition = $iteratorPosition;
                    break;
                }
            } else {
                $iteratorPosition       = false;
                $this->iteratorPosition = false;
            }

            $nextNode = true;
        } while ($iteratorPosition !== false);
    }