def _get_node(self, loc_descriptor, create_non_existing_nodes=False):
        """
        Get node corresponding to last location in a :class:`LocationDescriptor` object.
        
        Args:
            loc_descriptor: A  :class:`LocationDescriptor` object
            create_non_existing_nodes (bool): Do we create non existing nodes along the way (including last node)?
        
        Raises:
            RuntimeError if a node along the path given in by the :class:`LocationDescriptor` object does not exist
            **if** ``create_non_existing_nodes`` is set to ``False``.
        
        """
        node = self._root_node

        for location in loc_descriptor.generate_all_sub_locations():
            child = node.get_child_node_or_default(location, None)
            if child is None:
                if not create_non_existing_nodes:
                    raise RuntimeError("Node at location '%s' in '%s' does not exist!" % (location, loc_descriptor.to_string()))
                else:
                    # create empty node
                    child = TreeMapNode(None)
                    node.set_child_node(location, child)
                    self._nbr_of_nodes += 1
            node = child

        return node