def sget(self, path, default=NONE_NODE):
        u"""Enables access to nodes if one or more of them don't exist.

        Example:
        >>> m = Mappet('<root><tag attr1="attr text">text value</tag></root>')
        >>> m.sget('tag')
        text value
        >>> m.sget('tag.@attr1')
        'attr text'
        >>> m.sget('tag.#text')
        'text value'
        >>> m.sget('reply.vms_model_cars.car.0.params.doors')
        NONE_NODE

        Accessing nonexistent path returns None-like object with mocked
        converting functions which returns None:
        >>> m.sget('reply.fake_node').to_dict() is None
        True
        """
        attrs = str(path).split(".")
        text_or_attr = None
        last_attr = attrs[-1]
        # Case of getting text or attribute
        if last_attr == '#text' or last_attr.startswith('@'):
            # #text => text, @attr => attr
            text_or_attr = last_attr[1:]
            attrs = attrs[:-1]
            # When getting #text and @attr we want default value to be None.
            if default is NONE_NODE:
                default = None

        my_object = self
        for attr in attrs:
            try:
                if isinstance(my_object, (list, tuple)) and re.match('^\-?\d+$', attr):
                    my_object_next = my_object[int(attr)]
                else:
                    my_object_next = getattr(my_object, attr)
                my_object = my_object_next
            except (AttributeError, KeyError, IndexError):
                return default

        # Return #text or @attr
        if text_or_attr:
            try:
                return my_object.getattr(text_or_attr)
            except AttributeError:
                # myObject can be a list.
                return None
        else:
            return my_object
u"""Enables access to nodes if one or more of them don't exist.

        Example:
        >>> m = Mappet('<root><tag attr1="attr text">text value</tag></root>')
        >>> m.sget('tag')
        text value
        >>> m.sget('tag.@attr1')
        'attr text'
        >>> m.sget('tag.#text')
        'text value'
        >>> m.sget('reply.vms_model_cars.car.0.params.doors')
        NONE_NODE

        Accessing nonexistent path returns None-like object with mocked
        converting functions which returns None:
        >>> m.sget('reply.fake_node').to_dict() is None
        True