begin process at 2012 05 29 23:49:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Divers

 > 

libxml+ C+ recherche de noeuds et ajout attributs avec valeur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

libxml+ C+ recherche de noeuds et ajout attributs avec valeur

mercredi 10 mars 2010 à 09:26:29 | libxml+ C+ recherche de noeuds et ajout attributs avec valeur

ar1du62

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...



Cette discussion est classée dans : recherche, valeur, ajout, noeuds, libxml


Répondre à ce message

Sujets en rapport avec ce message

ajout de zéro binaire [ par zelastwarrior ] bonjour bonjour, mon probleme cette fois ci est lié a un zéro binaire.j'explique : mon projet affiche a gauche de l'hexa à droite les caractères. (pro Recherche de la plus grand valeur dans une liste chainée [ par doudou0088 ] Bonjour, J'ai une liste chainé contenant une valeur entière pour chaque élément (environ 96 éléments). J'aimerai affiché l'entier le plus grand de cet Recherche une ligne dans un fichier texte [ par kamelDEA ] Bonjour,J'ai un fichier texte qui contient 100 ligne.chaque ligne est composée de 4 valeurs décimales (valeur de probabilité)J'arrive pas à touver la ajout de valeur dans champ access [ par theflucke ] je dois en c++ inserer des donnes dans une dbgrid qui est liee a une table access... le probleme est que soit disant jen suis pas en mode editionj'ai Tableau [ par sebastienbro ] Arf, g un problème. Comment on fait pour trouver la valeur la plus haute d'un tableau ? Un peu commen UBound en VB ou High en delphi, mai g po trouver recherche d un code source liaison serie [ par chupeau ] bonjour,je recherche le code source d'une liaison serie de type CGPIBentre un pc et un oscilloscope.C'est liaison devra relever des tensions en sortie LES TABLEAUX UNIDIMENSIONNELS. [ par SniPi ] Voilà tout d'abord bonjour à tous, je viens de m'inscrire sur ce site et c'est ma première apparition ( mais pas la dernère).En fait j'ai un problème La valeur 26=0x1A pose un problème de lecture de fichier [ par sengr ] Salut!Jsuis en stage et jsuis pas un AS du dévelopement et ca URGE!J'ai rencontré un BIG problème : le coup du de la valeur 26=0x1A avec les fonctions Vérifier si mon nombre est trop grand [ par tweeder ] SalutDans mon programme, je dois vérifier si le nombre entré dépasse la capacité d'un unsigned int. De quelle facon puis-je m'y prendre ? Est-ce que j recherche de disque system [ par cedkat ] bonjourje cherche a savoir sur quel disque deur le systeme est installé sous borland c++ v6merci


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,231 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales