Adds a node using its
nodeName attribute. If a node with that name is
already present in this map, it is replaced by the new one. Replacing a
node by itself has no effect.
nodeName attribute is used to derive the name which the node must
be stored under, multiple nodes of certain types (those that have a "special"
string value) cannot be stored as the names would clash. This is seen as
preferable to allowing nodes to be aliased.
Copyright Lodovico Giaretta 2016 --