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 :

[Xerces] Lire et écrire dans un fichier XML


Sujet :

XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [Xerces] Lire et écrire dans un fichier XML
    Bonjour,
    J'utilise xerces v3 pour lire dans un fichier XML, mais le probléme c'est que je ne trouve pas comment écrire dedans :/

    Voici un exemple d'une de mes methodes que j'utilise et je souhaiterais pouvoir modifier le DOMText que je récupére (en utilisant une autre methode pour le modifier):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    string CharacterConfig::getCharacter(int id)
    {
        string return_account;
        bool found = false;
        if (not id < 1 or not id > 8)
        {
            for( XMLSize_t i = 0; i < children->getLength(); ++i ) // Boucle sur chaque account
            {
                DOMNode* currentNode = children->item(i); // récupére l'account de la liste
                DOMElement* currentElement = dynamic_cast< DOMElement* >( currentNode );
                if ( currentElement != NULL)
                {
                    int server_id = XMLString::parseInt(currentElement->getAttribute(_idAttribute)); // récupére l'id de l'account
                    if (server_id == id)
                    {
                        if( XMLString::equals(currentNode->getNodeName(), _accountTag)) // Vérifie quand meme si j'ai bien un element account
                        {
                            DOMNodeList* accountNode = currentNode->getChildNodes(); // récupére ce qu'il y a dans account
                            for( XMLSize_t i2 = 0; i2 < accountNode->getLength(); ++i2 ) // boucle sur chaque element de l'account
                            {
                                DOMNode* currentAccountNode = accountNode->item(i2);
                                if(XMLString::equals(currentAccountNode->getNodeName(), _characterNameTag)) // on vérifie que l'on a bien notre element character
                                {
                                    DOMNode* characterNode = currentAccountNode->getFirstChild(); // récupére le premier (le seul) element
                                    DOMText* characterText = dynamic_cast< DOMText* > ( characterNode );
                                    if (characterText != NULL)
                                    {
                                        string result = XMLString::transcode(characterText->getWholeText());
                                        size_t find = result.find("\n");
                                        if ( find != string::npos )
                                            result.erase(find);
                                        if(!result.empty())
                                        {
                                            found = true;
                                            return_account = result;
                                        }
                                        else
                                        {
                                            found = false;
                                            return_account = "NONE";
                                        }
                                        break;
                                    }
                                    else
                                    {
                                        break;
                                    }
                                }
                                else
                                {
                                    if(not found)
                                        return_account = "NONE";
                                }
                            }
                        }
                    }
                    else
                    {
                        if(not found)
                            return_account = "NONE";
                    }
                }
            }
        }
        return return_account;
    }

    Merci d'avance.


    EDIT: j'utilise xerces c++ v3

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Salut,

    Tu ne sais pas comment modifier un document ou tu ne sais pas comment écrire un document dans un fichier ?

    MAT.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'ai un fichier XML (avec les elements dedans) et je voudrais modifier le fichier pour y ajouter mes éléments (je sais modifier les elements, mais apres la modification n'est pas pris en compte dans le fichier).
    Je n'est rien trouver la dessu sur la doc de Xerces et sur internet :/

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Quand tu charges un fichier ça crée un document en mémoire, que tu peux modifier en mémoire, et éventuellement l'écrire dans un fichier.

    Pour xerces 3.0 il faut utiliser un DOMLSSerializer couplé à un LocalFileFormatTarget.
    Pour xerces 2.x tu peux regarder par exemple Saving XML data using DOMWriter in XML for the C++ parser.

    MAT.

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Cool merci, je vais regarder sa

Discussions similaires

  1. Lire et écrire dans un fichier XML mutualisé!
    Par Invité dans le forum VB.NET
    Réponses: 3
    Dernier message: 27/10/2014, 10h19
  2. lire et écrire dans un fichiers de signature XML
    Par masterdash dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 17/01/2013, 21h19
  3. [Débutant] Lire et écrire dans un fichier xml
    Par sheira dans le forum C#
    Réponses: 37
    Dernier message: 13/02/2012, 11h31
  4. [XML/Glib/GTK+] Comment lire et écrire dans un fichier XML
    Par Skarsnick dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 19/08/2009, 09h20
  5. [Rech. Comp.] Lire et écrire dans des fichiers XML
    Par Rodrigue dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/08/2005, 20h48

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