Bonjour,
On a une liste de nombres se trouvant dans une balise <coordonnes>. on a réussi à lire tout le contenu de cette balise avec xpath en codant en langage c. le problème qui se pose est que notre programme fait la lecture de la balise en tant que chaîne de caractère.cependant, on a besoin de récuperer ces données pas sous forme de chaîne de caractère(pas comme un gros bloc) mais en tant que nombres independant les uns des autres.

pouvez vous nous renseigner?
merci


fichier.xml

<proprietes>
<coordonnees>1 0 0 5 4 7 9 56 45 1 0 0 4 7 5 6 1</coordonnes>
<champ_principal>0 0 1</champ_principal>


</proprietes>


exemple1.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <libxml/parser.h>
#include <libxml/xpath.h>

int main() {

// Ouverture du document XML

xmlKeepBlanksDefault(0); // Ignore les noeuds texte composant la mise en forme

xmlDocPtr doc = xmlParseFile("exemple2.xml");

if (doc == NULL) {

fprintf(stderr, "Document XML invalide\n");

return EXIT_FAILURE;

}

// Initialisation de l'environnement XPath

xmlXPathInit();

// Création du contexte

xmlXPathContextPtr ctxt = xmlXPathNewContext(doc);

if (ctxt == NULL) {

fprintf(stderr, "Erreur lors de la création du contexte XPath\n");

return EXIT_FAILURE;

}

// Evaluation de l'expression XPath

xmlXPathObjectPtr xpathRes = xmlXPathEvalExpression("/proprietes/coordonnees/text()", ctxt);

if (xpathRes == NULL) {

fprintf(stderr, "Erreur sur l'expression XPath\n");

return EXIT_FAILURE;

}

// Manipulation du résultat

if (xpathRes->type == XPATH_NODESET) {

int i;

printf("coordonneest:\n");

for (i = 0; i < xpathRes->nodesetval->nodeNr; i++) {

xmlNodePtr n = xpathRes->nodesetval->nodeTab[i];

if (n->type == XML_TEXT_NODE || n->type == XML_CDATA_SECTION_NODE) {

printf("- %s\n", n->content);

}

}

}
xmlXPathFreeObject(xpathRes);

xmlXPathFreeContext(ctxt);

xmlFreeDoc(doc);



return EXIT_SUCCESS;

}