CPAN RT

Objects implementing the NamedNodeMap interface are used to represent collections of nodes that can be accessed by name.
Note that NamedNodeMap does not inherit from NodeList; NamedNodeMaps are not maintained in any particular order.
Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,
but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,
and does not imply that the DOM specifies an order to these Nodes.

Note that in this implementation,
the objects added to a NamedNodeMap are kept in order.

As the 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.

Parameters: arg A node to store in a named node map.

The node will later be accessible using the value of the nodeName attribute of the node.
If a node with that name is already present in the map,
it is replaced by the new one.

Return Value: If the new Node replaces an existing node with the same name the previously existing Node is returned,
otherwise undef is returned.

DOMExceptions:

WRONG_DOCUMENT_ERR

Raised if arg was created from a different document than the one that created the NamedNodeMap.

NO_MODIFICATION_ALLOWED_ERR

Raised if this NamedNodeMap is readonly.

INUSE_ATTRIBUTE_ERR

Raised if arg is an Attr that is already an attribute of another Element object.
The DOM user must explicitly clone Attr nodes to re-use them in other elements.