# Poco::XML

# class AbstractContainerNode

Library: XML
Package: DOM
Header: Poco/DOM/AbstractContainerNode.h

## Description

AbstractContainerNode is an implementation of Node that stores and manages child nodes.

Child nodes are organized in a single linked list.

## Inheritance

Direct Base Classes: AbstractNode

All Base Classes: AbstractNode, DOMObject, EventTarget, Node

Known Derived Classes: Document, DocumentFragment, DocumentType, Element, Entity

## Member Summary

Member Functions: appendChild, dispatchNodeInsertedIntoDocument, dispatchNodeRemovedFromDocument, findAttribute, findElement, findNode, firstChild, getNodeByPath, getNodeByPathNS, hasAttributeValue, hasAttributes, hasChildNodes, insertBefore, lastChild, namesAreEqual, removeChild, replaceChild

Inherited Functions: addEventListener, appendChild, attributes, autoRelease, bubbleEvent, captureEvent, childNodes, cloneNode, copyNode, dispatchAttrModified, dispatchCharacterDataModified, dispatchEvent, dispatchNodeInserted, dispatchNodeInsertedIntoDocument, dispatchNodeRemoved, dispatchNodeRemovedFromDocument, dispatchSubtreeModified, duplicate, events, eventsSuspended, firstChild, getNodeByPath, getNodeByPathNS, getNodeValue, hasAttributes, hasChildNodes, innerText, insertBefore, isSupported, lastChild, localName, namespaceURI, nextSibling, nodeName, nodeType, nodeValue, normalize, ownerDocument, parentNode, prefix, previousSibling, release, removeChild, removeEventListener, replaceChild, setNodeValue, setOwnerDocument

## Constructors

### AbstractContainerNode

AbstractContainerNode(
Document * pOwnerDocument
);

### AbstractContainerNode

AbstractContainerNode(
Document * pOwnerDocument,
const AbstractContainerNode & node
);

## Destructor

### ~AbstractContainerNode

~AbstractContainerNode();

## Member Functions

### appendChild

Node * appendChild(
Node * newChild
);

See also: Poco::XML::AbstractNode::appendChild()

### firstChild

Node * firstChild() const;

See also: Poco::XML::AbstractNode::firstChild()

### getNodeByPath

Node * getNodeByPath(
const XMLString & path
) const;

See also: Poco::XML::AbstractNode::getNodeByPath()

### getNodeByPathNS

Node * getNodeByPathNS(
const XMLString & path,
const NSMap & nsMap
) const;

See also: Poco::XML::AbstractNode::getNodeByPathNS()

### hasAttributes

bool hasAttributes() const;

See also: Poco::XML::AbstractNode::hasAttributes()

### hasChildNodes

bool hasChildNodes() const;

See also: Poco::XML::AbstractNode::hasChildNodes()

### insertBefore

Node * insertBefore(
Node * newChild,
Node * refChild
);

See also: Poco::XML::AbstractNode::insertBefore()

### lastChild

Node * lastChild() const;

See also: Poco::XML::AbstractNode::lastChild()

### removeChild

Node * removeChild(
Node * oldChild
);

See also: Poco::XML::AbstractNode::removeChild()

### replaceChild

Node * replaceChild(
Node * newChild,
Node * oldChild
);

See also: Poco::XML::AbstractNode::replaceChild()

### dispatchNodeInsertedIntoDocument

void dispatchNodeInsertedIntoDocument();

See also: Poco::XML::AbstractNode::dispatchNodeInsertedIntoDocument()

### dispatchNodeRemovedFromDocument

void dispatchNodeRemovedFromDocument();

See also: Poco::XML::AbstractNode::dispatchNodeRemovedFromDocument()

### findAttribute

static const Attr * findAttribute(
const XMLString & name,
const Node * pNode,
const NSMap * pNSMap
);

### findElement

static const Node * findElement(
const XMLString & name,
const Node * pNode,
const NSMap * pNSMap
);

### findElement

static const Node * findElement(
int index,
const Node * pNode,
const NSMap * pNSMap
);

### findElement

static const Node * findElement(
const XMLString & attr,
const XMLString & value,
const Node * pNode,
const NSMap * pNSMap
);

### findNode

static const Node * findNode(
XMLString::const_iterator & it,
const XMLString::const_iterator & end,
const Node * pNode,
const NSMap * pNSMap,
bool & indexBound
);

### hasAttributeValue

bool hasAttributeValue(
const XMLString & name,
const XMLString & value,
const NSMap * pNSMap
) const;

### namesAreEqual

static bool namesAreEqual(
const Node * pNode1,
const Node * pNode2,
const NSMap * pNSMap
);

### namesAreEqual

static bool namesAreEqual(
const Node * pNode,
const XMLString & name,
const NSMap * pNSMap
);

## Variables

### WILDCARD

static const XMLString WILDCARD;