Bonjour,
Je trouve très peu de doc sur lla librairie GTK pour le XML. Apparemment c'est une librairie relativement petite et j'avoue que les exemples ne cours pas les rues.
J'ai tout de même réussi à écrire ça à partir d'exemple trouvé mais une erreur ressort (le problème viendrait du fichier XML) :

Erreur à la ligne 1 caractère 1?? : Le document doit commencer par un élément (ex. <book>)
Pour le caractère c'est pas lisible, la console (sous windows) m'affiche un "à".

Voici le contenu de mon fichier XML (il est encodé en UTF8) :

<item>
<title>Titre 1</title>
<description>Description 1</description>
<command>Commande 1</command>
<filename>Fichier 1</filename>
</item>
Et mon programme en C. Parser du XML c'est plus que flou encore pour moi, je ne comprend pas encore tous les mécanismes...

#include <stdlib.h>
#include <stdio.h>
#include <glib.h>

static void xml_start(GMarkupParseContext *context,
const gchar *element_name,
const gchar **attribute_names,
const gchar **attribute_values,
gpointer data,
GError **error)
{
const gchar *element;
element = g_markup_parse_context_get_element(context);
}

static void xml_end(GMarkupParseContext *context,
const gchar *element_name,
gpointer data,
GError **error)
{
const gchar *element;
element = g_markup_parse_context_get_element(context);
}

static void xml_element(GMarkupParseContext *context,
const gchar *text,
gsize text_len,
gpointer data,
GError **error)
{
const gchar *element;
element = g_markup_parse_context_get_element(context);
printf("> element : %s\n", (char*)element);
}

static void xml_err(GMarkupParseContext *context,
GError *error,
gpointer data)
{
g_printerr("error: %s\n", error->message);
}

int _tmain(int argc, _TCHAR* argv[])
{
gchar* content = "C:\fc.xml";

static GMarkupParser parser = { xml_start, xml_end, xml_element, NULL, xml_err };
GMarkupParseContext *context;

context = g_markup_parse_context_new (&parser, G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG, NULL, NULL);
g_markup_parse_context_parse (context, "C:\fc.xml", -1, NULL);
g_markup_parse_context_free (context);

system("pause");
return 0;
}
Si quelqu'un à une idée... une suggestion ! Merci de votre lecture.

[Edit] Je n'avais pas vu l'existence du forum GTK+ dans bibliothèque... si un modérateur pense qu'il a plus sa place là bas... désolé.