/***********************************************************************//** * @brief Append all XML child nodes from another XML node * * @param[in] node XML node. * * Append all XML child nodes found in @p node to the actual object. Nodes * are copied deeply so that they live now on their on in the actual object. ***************************************************************************/ void GXmlNode::extend(const GXmlNode& node) { // Do nothing if node container is empty if (!node.is_empty()) { // Get size. Note that we extract the size first to avoid an // endless loop that arises when a container is appended to // itself. int num = node.size(); // Reserve enough space reserve(size() + num); // Loop over all child nodes and append pointers to deep copies for (int i = 0; i < num; ++i) { m_nodes.push_back(node[i]->clone()); } } // endif: node container was not empty // Return return; }