xmlChar *child_id = xmlGetProp(child, XML_ATTR_ID);
child_id = xmlGetProp(child, XML_ATTR_ID);
find_entity_nested(xmlNodePtr parent,		   const char *node_name,		   const char *elem_filter_name,		   const char *elem_filter_value,		   const char *id,		   gboolean siblings){	xmlNodePtr child;		crm_trace("Looking for %s elem with id=%s.", node_name, id);	while(parent != NULL) {		crm_trace("examining (%s).", xmlGetNodePath(parent));		child = parent->children;			while(child != NULL) {			crm_trace("looking for (%s) [name].", node_name);			if (node_name != NULL			    && strcmp(child->name, node_name) != 0) {    				crm_trace(					"skipping entity (%s=%s) [node_name].",					xmlGetNodePath(child), child->name);				break;			} else if (elem_filter_name != NULL				   && elem_filter_value != NULL) {				const char* child_value = (const char*)					xmlGetProp(child, elem_filter_name);								crm_trace(				       "comparing (%s) with (%s) [attr_value].",				       child_value, elem_filter_value);				if (strcmp(child_value, elem_filter_value)) {					crm_trace("skipping entity (%s) [attr_value].",						   xmlGetNodePath(child));					break;				}			}					crm_trace(			       "looking for entity (%s) in %s.",			       id, xmlGetNodePath(child));			while(child != NULL) {				crm_trace(				       "looking for entity (%s) in %s.",				       id, xmlGetNodePath(child));				xmlChar *child_id =					xmlGetProp(child, XML_ATTR_ID);				if (child_id == NULL) {					crm_crit(					       "Entity (%s) has id=NULL..."					       "Cib not valid!",					       xmlGetNodePath(child));				} else if (strcmp(id, child_id) == 0) {					crm_trace("found entity (%s).", id);					return child;				}   				child = child->next;			}		}		if (siblings == TRUE) {			crm_trace("Nothing yet... checking siblings");	    			parent = parent->next;		} else			parent = NULL;	}	crm_info(	       "Couldnt find anything appropriate for %s elem with id=%s.",	       node_name, id);	    	return NULL;}