Ciao a tutti
Premetto che sto ancora studiando la libreria mini-xml, ora ho provato a fare un esempio che è dato nella documentazione, semplicemente preso un file XML si usa la funzione mxmlElementGetAttr per prendere un attributo poi si fa la valutazione sul tipo di attributo e si ritorna il tipo di dato nei formati MXML_INTEGER, MXML_REAL ecc.
ma quando mando in esecuzione il programma mi da warning sulla subroutine che uso, questo mi sembra normale perchè non assegno nessun tipo predefinito di dato che deve tornare indietro (almeno penso sia per questo)
poi quando mando in esecuzione mi da come errore questo: "early EOF in processing instruction node"

andando a cercare quest'errore ho trovato un file enorme con tutte le possibili funzioni di mxml, ma non riesco a capire da cosa dipende l'errore vi metto di seguito il file XML che sto usando e il codice del programma

file XML
codice:
<?xml version="1.0">
<tasks>
  <list id="987654321" current="2012-11-07T08:13:26Z">
    <taskseries id="123456789" created="2012-11-07T10:19:54Z" modified="2012-11-07T10:19:54Z"
               name="Prendi i libri" source="api" url="" location_id="">
      <tags/>
      <participants/>
      <notes/>
      <task id="987654321" due="" has_due_time="0" added="2012-11-07T10:19:54Z"
           completed="" deleted="" priority="1" postponed="0" estimate="60"/>
      ...
    </taskseries>
    ...
    <deleted>
      <taskseries id="650390">
        <task id="815255" deleted="2012-10-07T14:26:47Z" />
      </taskseries>
    </deleted>
    ...
  </list>
  ...
</tasks>
il programma main

codice:
#include <stdlib.h>
#include <mxml.h>
#include <pthread.h>

 type_cb(mxml_node_t *tasks);

main()
{

FILE *fp;
    mxml_node_t *tasks;

    fp = fopen("lista.xml", "r");
    tasks = mxmlLoadFile(NULL, fp, type_cb);
    fclose(fp);

}
la subroutine type_cb


codice:
#include <stdlib.h>
#include <mxml.h>
#include <pthread.h>


mxml_type_t
    type_cb(mxml_node_t *tasks)
    {
      const char *type;

     /*
      * You can lookup attributes and/or use the
      * element name, hierarchy, etc...
      */

      type = mxmlElementGetAttr(tasks, "type");
      if (type == NULL)
	type = mxmlGetElement(tasks);

      if (!strcmp(type, "integer"))
{
	printf("attributo di tipo intetro \n");
	return (MXML_INTEGER);
}
      else if (!strcmp(type, "opaque"))
{
	printf("attributo di tipo opaque \n");
	return (MXML_OPAQUE);
}
      else if (!strcmp(type, "real"))
{
	printf("attributo di tipo real \n");
	return (MXML_REAL);
}
      else
{
	printf("attributo di tipo stringa \n");
	return (MXML_TEXT);
}
	
    }