Hi All,
I'm trying to use xmlAddChildList( ) and seems there is a strange problem in
adding this
child list to the doctree (xmlDocPtr).

here is the code snippet which creates the problem.


bool AddChild(const string &path, xmlNodePtr *node*, AddChildType addType)
{
...............assume after evaluating the path, i have a xmlNodeSetPtr
nodes;
    xmlNodePtr pnode = nodes->nodeTab[0];
    switch (addType)
    {
    case eAddNode:
        break;
    case eAddNodeList:
.............assume we have the xmlDocPtr tree;
        //xmlElemDump(stdout, tree, pnode); ----> this shows proper data of
*node.*
        if (xmlAddChildList(pnode, node) == NULL) -----------> this adds the
child list but the data is duplicated again for every

call of this function with a new nodelist
        {
            return false;
        }
        //xmlElemDump(stdout, tree, pnode); ----> this doesnt show proper
data of *pnode.
*        //xmlFreeNodeList(node);
        break;
    default:
        break;
    }
    return true;
}

for example, if I call this function with xmlNodePtr node has the data as,
1st call : <childList1>......</childList1>
2nd call: <childList2>......</childList2>
3rd call: <childList3>......</childList3>

now after this execution, the actual docTree has the info as follows,
<childList1>......</childList1>
 <childList2>......</childList2>
<childList1>......</childList1>
 <childList3>......</childList3>
<childList1>......</childList1>
 <childList2>......</childList2>
<childList1>......</childList1>

but this should have added only once. Somehow the data gets duplicated after
xmlAddChildList( ). because the *node contains the proper data*. only the *
pnode*
*is having the wrong data.*

could you please help me on to figure out the problem or fix it.

Thanks
Senthil Nathan R
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to