# XQilla DOM3 API Documentation

# xercesc::DOMNamedNodeMap Class Reference

`DOMNamedNodeMap`s are used to represent collections of nodes that can be accessed by name. More...

`#include <DOMNamedNodeMap.hpp>`

List of all members.

## Public Member Functions

Destructor
virtual | ~DOMNamedNodeMap ()
| Destructor.
Functions introduced in DOM Level 1
virtual DOMNode * | setNamedItem (DOMNode *arg)=0
| Adds a node using its `nodeName` attribute.
virtual DOMNode * | item (XMLSize_t index) const =0
| Returns the `index`th item in the map.
virtual DOMNode * | getNamedItem (const XMLCh *name) const =0
| Retrieves a node specified by name.
virtual XMLSize_t | getLength () const =0
| The number of nodes in the map.
virtual DOMNode * | removeNamedItem (const XMLCh *name)=0
| Removes a node specified by name.
Functions introduced in DOM Level 2
virtual DOMNode * | getNamedItemNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
| Retrieves a node specified by local name and namespace URI.
virtual DOMNode * | setNamedItemNS (DOMNode *arg)=0
| Adds a node using its `namespaceURI` and `localName`.
virtual DOMNode * | removeNamedItemNS (const XMLCh *namespaceURI, const XMLCh *localName)=0
| Removes a node specified by local name and namespace URI.

## Protected Member Functions

Hidden constructors
| DOMNamedNodeMap ()

## Detailed Description

`DOMNamedNodeMap`s are used to represent collections of nodes that can be accessed by name.

Note that `DOMNamedNodeMap` does not inherit from `DOMNodeList`; `DOMNamedNodeMap`s are not maintained in any particular order. Nodes contained in a `DOMNamedNodeMap` may also be accessed by an ordinal index, but this is simply to allow convenient enumeration of the contents, and does not imply that the DOM specifies an order to these Nodes.

Since:
  DOM Level 1

## Constructor & Destructor Documentation

xercesc::DOMNamedNodeMap::DOMNamedNodeMap | ( |  | ) | `[inline, protected]`

virtual xercesc::DOMNamedNodeMap::~DOMNamedNodeMap | ( |  | ) | `[inline, virtual]`

Destructor.

## Member Function Documentation

virtual XMLSize_t xercesc::DOMNamedNodeMap::getLength | ( |  | ) | const`[pure virtual]`

The number of nodes in the map.

The range of valid child node indices is 0 to `length-1` inclusive.

Since:
  DOM Level 1

virtual DOMNode* xercesc::DOMNamedNodeMap::getNamedItem | ( | const XMLCh * | name | ) | const`[pure virtual]`

Retrieves a node specified by name.

Parameters:

  | name | The `nodeName` of a node to retrieve.

Returns:
  A `DOMNode` (of any type) with the specified `nodeName`, or `null` if it does not identify any node in the map.

Since:
  DOM Level 1

virtual DOMNode* xercesc::DOMNamedNodeMap::getNamedItemNS | ( | const XMLCh * | namespaceURI,
|  | const XMLCh * | localName |
| ) |  |  | const`[pure virtual]`

Retrieves a node specified by local name and namespace URI.

Parameters:

  | namespaceURI | The namespace URI of the node to retrieve.
  | localName | The local name of the node to retrieve.

Returns:
  A `DOMNode` (of any type) with the specified local name and namespace URI, or `null` if they do not identify any node in the map.

Since:
  DOM Level 2

virtual DOMNode* xercesc::DOMNamedNodeMap::item | ( | XMLSize_t | index | ) | const`[pure virtual]`

Returns the `index`th item in the map.

If `index` is greater than or equal to the number of nodes in the map, this returns `null`.

Parameters:

  | index | Index into the map.

Returns:
  The node at the `index`th position in the `DOMNamedNodeMap`, or `null` if that is not a valid index.

Since:
  DOM Level 1

virtual DOMNode* xercesc::DOMNamedNodeMap::removeNamedItem | ( | const XMLCh * | name | ) | `[pure virtual]`

Removes a node specified by name.

If the removed node is an `DOMAttr` with a default value it is immediately replaced.

Parameters:

  | name | The `nodeName` of a node to remove.

Returns:
  The node removed from the map if a node with such a name exists.

Exceptions:

  | DOMException | NOT_FOUND_ERR: Raised if there is no node named `name` in the map. NO_MODIFICATION_ALLOWED_ERR: Raised if this `DOMNamedNodeMap` is readonly.

Since:
  DOM Level 1

virtual DOMNode* xercesc::DOMNamedNodeMap::removeNamedItemNS | ( | const XMLCh * | namespaceURI,
|  | const XMLCh * | localName |
| ) |  |  | `[pure virtual]`

Removes a node specified by local name and namespace URI.

Parameters:

  | namespaceURI | The namespace URI of the node to remove.
  | localName | The local name of the node to remove. When this `DOMNamedNodeMap` contains the attributes attached to an element, as returned by the attributes attribute of the `DOMNode` interface, if the removed attribute is known to have a default value, an attribute immediately appears containing the default value as well as the corresponding namespace URI, local name, and prefix.

Returns:
  The node removed from the map if a node with such a local name and namespace URI exists.

Exceptions:

  | DOMException | NOT_FOUND_ERR: Raised if there is no node named `name` in the map. NO_MODIFICATION_ALLOWED_ERR: Raised if this `DOMNamedNodeMap` is readonly.

Since:
  DOM Level 2

virtual DOMNode* xercesc::DOMNamedNodeMap::setNamedItem | ( | DOMNode * | arg | ) | `[pure virtual]`

Adds a node using its `nodeName` attribute.

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.

Returns:
  If the new `DOMNode` replaces an existing node the replaced `DOMNode` is returned, otherwise `null` is returned.

Exceptions:

  DOMException

  WRONG_DOCUMENT_ERR: Raised if `arg` was created from a different document than the one that created the `DOMNamedNodeMap`.
  NO_MODIFICATION_ALLOWED_ERR: Raised if this `DOMNamedNodeMap` is readonly.
  INUSE_ATTRIBUTE_ERR: Raised if `arg` is an `DOMAttr` that is already an attribute of another `DOMElement` object. The DOM user must explicitly clone `DOMAttr` nodes to re-use them in other elements.

Since:
  DOM Level 1

virtual DOMNode* xercesc::DOMNamedNodeMap::setNamedItemNS | ( | DOMNode * | arg | ) | `[pure virtual]`

Adds a node using its `namespaceURI` and `localName`.

Parameters:

  | arg | A node to store in a named node map. The node will later be accessible using the value of the `namespaceURI` and `localName` attribute of the node. If a node with those namespace URI and local name is already present in the map, it is replaced by the new one.

Returns:
  If the new `DOMNode` replaces an existing node the replaced `DOMNode` is returned, otherwise `null` is returned.

Exceptions:

  DOMException

  WRONG_DOCUMENT_ERR: Raised if `arg` was created from a different document than the one that created the `DOMNamedNodeMap`.
  NO_MODIFICATION_ALLOWED_ERR: Raised if this `DOMNamedNodeMap` is readonly.
  INUSE_ATTRIBUTE_ERR: Raised if `arg` is an `DOMAttr` that is already an attribute of another `DOMElement` object. The DOM user must explicitly clone `DOMAttr` nodes to re-use them in other elements.

Since:
  DOM Level 2

The documentation for this class was generated from the following file:

- DOMNamedNodeMap.hpp