XmlNode* XmlNode::appendChild( XmlNode* newChild ) { XmlNode* node = this->getFirstChildNode(); if ( node == NULL ) { this->_impl->set_child( newChild ); } else { while ( node->getNextSiblingNode() != NULL ) { node = node->getNextSiblingNode(); } node->_impl->set_sibling( newChild ); } newChild->_impl->set_parent( this ); return newChild; }