IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML Discussion :

[libxml] Créer un fichier XML


Sujet :

XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [libxml] Créer un fichier XML
    Bonjour, voila je voudrais savoir si il y a une fonction dans la librairie libxml pour créer un fichier XML, je pensais que je pouvais avec la fonction xmlNewDoc , mais je ne peux pas choisir le nom du fichier. Donc est ce que quelqu'un aurait une solution ?

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour et bienvenue sur les forums ,

    Je ne connais pas vraiment libxml,mais à mon avis il faut passer par les fonctins standard de C (c'est-à-dire fopen() fwrite() ...) et écrire le contenu généré par libxml dedans

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    xmlNewDoc crée bien un arbre DOM mais en mémoire. Il faudra ensuite le dumper dans un fichier via les fonctions prévues.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci , ça fonctionne nikel.

    Une autre question qui me turlupine, est ce que le contenu d'un attribut est obligé d'être en "DUR" ? Par exemple mettre une variable qui récupère la date ?

    comme ceci (avec la date actuelle dans valeur_date, quand j'appelle ma fonction pour écrire)

    <date valeur="valeur_date">100W/H</date>

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Non, bien sûr, il n'y a pas d'obligation à ce que le contenu soit statique. Par contre, il faut que ce soit une chaîne (xmlChar).

    Je ne comprends pas votre edit.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Voici mon code :

    int main()
    {
    xmlDocPtr doc_xml;
    xmlNodePtr racine, noeud;
    xmlChar *val_attribut;
    int variable;
    int date;
    date = 8;
    xmlChar *valeur_date;
    valeur_date=(xmlChar*)&date;


    // Ouverture du fichier XML
    xmlKeepBlanksDefault(0);
    doc_xml = xmlParseFile("2010.xml");
    if (doc_xml == NULL)
    {
    fprintf(stderr, "Document XML invalide\n");
    return EXIT_FAILURE;
    }

    // Récupération de la racine
    racine = xmlDocGetRootElement(doc_xml);
    if (racine == NULL)
    {
    fprintf(stderr, "Document XML vierge\n");
    xmlFreeDoc(doc_xml);
    return EXIT_FAILURE;
    }

    // Création du noeud "date"
    noeud = xmlNewNode(NULL, "date");

    // Ajout de son attribut "valeur"
    xmlSetProp(noeud, "valeur", valeur_date);
    ----------------------------------------------

    C'est juste un test, donc j'aimerais écrire la valeur 8 dans mon code XML au travers de la variable valeur_date , mais ça ne fonctionne pas, est ce que vous voyez d'où peut provenir l'erreur?

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Pour effectuer la conversion nombre vers chaîne, il faut utiliser une fonction comme s(n)printf.

    Par ailleurs, libxml2 propose xmlStrPrintf.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Ok , je vais essayer ça alors, merci

Discussions similaires

  1. [DOM] Créer un fichier XML indenté
    Par phoebe dans le forum Format d'échange (XML, JSON...)
    Réponses: 19
    Dernier message: 06/10/2009, 23h31
  2. [DOM] Créer un fichier XML sous une forme bien précise
    Par LaseLiep dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 09/06/2005, 18h05
  3. [C#] [XML] Comment créer un fichier XML
    Par pc152 dans le forum Windows Forms
    Réponses: 12
    Dernier message: 28/09/2004, 13h41
  4. [C#] Créer un fichier Xml à partir d'un objet
    Par Troopers dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/09/2004, 13h23
  5. [DOM] est ce qu'on peut créer un fichier xml en java ?
    Par miloud dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 21/01/2004, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo