int parse_parties(xmlDocPtr doc, xmlNodePtr cur, node NODE)
{
NODE *head;
NODE *p;

*head = NULL;

子ノードへ移る作業を行い

  while(cur != NULL){
cur = cur -> xmlChildrenNode;

if(!xmlStrcmp(cur->name,(const xmlChar *) "name" )){
p=malloc(sizeof(NODE));
if(!p){
エラー処理

      p ->agent_name=xmlNodeListGetString(doc, cur->xmlChildrenNode,1)
p -> next = head;
next = p;
}
cur = cur -> next;
}
}
return 0;
}
と作ったのですが、 おかしいとこありますか?