'Return the contents of toolbox settings file with a nested structure.
:param encoding: encoding used by settings file
:type encoding: str
:param errors: Error handling scheme for codec. Same as ``decode()`` builtin method.
:type errors: str
:param kwargs: Keyword arguments passed to ``StandardFormat.fields()``
:type kwargs: dict
:rtype: ElementTree._ElementInterface'

def parse(self, encoding=None, errors='strict', **kwargs):

    builder = TreeBuilder()
    for (mkr, value) in self.fields(encoding=encoding, errors=errors, **kwargs):
        block = mkr[0]
        if (block in ('+', '-')):
            mkr = mkr[1:]
        else:
            block = None
        if (block == '+'):
            builder.start(mkr, {})
            builder.data(value)
        elif (block == '-'):
            builder.end(mkr)
        else:
            builder.start(mkr, {})
            builder.data(value)
            builder.end(mkr)
    return builder.close()
