| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | hzXmlNode::AddNode | (hzXmlNode*,) |
Declared in file: hzDocument.h
Defined in file : hzDocXml.cpp
Function Logic:
Function body:
hzEcode hzXmlNode::AddNode (hzXmlNode* pNode)
{
_hzfunc("hzXmlNode::AddNode") ;
hzXmlNode* tmp ;
if (!pNode)
return hzerr(E_ARGUMENT, "Attempt to add a null node to %s", txtName()) ;
if (pNode == this)
return hzerr(E_DUPLICATE, "Attempt to add a node (%d) to itself (%d, %s)", pNode->m_Uid, m_Uid, txtName()) ;
if (!m_pHostDoc)
hzexit(E_NOINIT, "Node has no host document") ;
m_pHostDoc->m_NodesPar.Insert(m_Uid, pNode->m_Uid) ;
if (!m_Children)
m_Children = pNode->GetUid() ;
else
{
for (tmp = GetFirstChild() ; tmp->m_Sibling ; tmp = tmp->Sibling())
{
if (pNode == tmp)
return hzerr(E_DUPLICATE, "Attempt to add an already existing node to %s", txtName()) ;
}
tmp->m_Sibling = pNode->m_Uid ;
}
return E_OK ;
}