Bonjour :)
Je vous expose mon problème:
Je dois créer un programme en C qui puisse rechercher dans un document XML tout les noeuds nommés par exemple <Produit>.
Ensuite, je dois leur affecter, à chacun, un attribut avec une valeur.
Exemple du résultat souhaité:
<cat>
<produit type="eerer">
<lib>velo</lib>
</produit>
<produit type="eerer">
<lib>tortue</lib>
</produit>
</cat>
Pour cela j'utilise la librairie libxml mais je suis débutant aussi bien en C et avec cette librairie.
Donc j'ai cherché sur GOOGLE, j'ai trouvé des info mais c'est pas pour cela que j'ai réussis a faire ce que je voulais. <- Surment du à mon niveau débutant XD
Votre aide est vraiment la bien venue.
ps voici les sites que j'ai consulté donc pas la peine de me mettre des liens lol car sa m'avance pas trop, il me faut de l'aide...
http://julp.developpez.com/c/libxml2/?page=dom#L2.8
http://ymettier.free.fr/articles_lmag/lmag51_briques_en_C17/lmag51_briques_en_C17.html#id4738586
Je ne me suis pas tourné les doigts lol donc j'ai petit morceau de code qui marche pas (bien sur) mais peut etre que je suis sur une bonne piste qui c'est?
xmlDocPtr doc;
xmlNodePtr racine;
doc = xmlParseFile("test.xml");
// Initialisation de l'environnement XPath
xmlXPathInit();
// Création du contexte
xmlXPathContextPtr ctxt = xmlXPathNewContext(doc); // doc est un xmlDocPtr représentant notre catalogue
if (ctxt == NULL) {
fprintf(stderr, "Erreur lors de la création du contexte XPath\n");
exit(-1);
}
// Evaluation de l'expression XPath
xmlXPathObjectPtr xpathRes = xmlXPathEvalExpression("/catalogue/produit/intitule", ctxt);
if (xpathRes == NULL) {
fprintf(stderr, "Erreur sur l'expression XPath\n");
exit(-1);
}
// Manipulation du résultat
if (xpathRes->type == XPATH_NODESET) {
int i;
for (i = 0; i < xpathRes->nodesetval->nodeNr; i++) {
xmlNodePtr n = xpathRes->nodesetval->nodeTab[i];
xmlSetProp(n, "monAttribut", "valeur");
}
}
// Libération de la mémoire
xmlXPathFreeObject(xpathRes);
xmlXPathFreeContext(ctxt);
// Libération de la mémoire
xmlFreeDoc(doc);
system("PAUSE");
MerKi Les amis dev...