rem: result = xmlXPathEvalExpression(xpath, context);
add: result = xmlXPathEvalExpression((xmlChar*)xpath, context);
context: void xpath_map(xmlDocPtr doc, char *xpath, void (*f)(xmlNodePtr, void *), void *data){	xmlXPathContextPtr context;	xmlXPathObjectPtr result;	xmlNodeSetPtr nodeset;	int i;	context = xmlXPathNewContext(doc);	result = xmlXPathEvalExpression(xpath, context);	if(!result || xmlXPathNodeSetIsEmpty(result->nodesetval)){		fprintf(stderr, "xpath_map: no result for xpath=%s\n", xpath);		return;	}	nodeset = result->nodesetval;	for (i=0; i < nodeset->nodeNr; i++) {		xmlNodePtr node = nodeset->nodeTab[i];		printf("name[%d]: %s\n", i, node->name);		f(node, data);	}	xmlXPathFreeContext(context);}