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

Bibliothèques Discussion :

[XERCES][DOM] Perte du prologue XML


Sujet :

Bibliothèques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 229
    Par défaut [XERCES][DOM] Perte du prologue XML
    Bonjour,

    voilà j'utilise le dom de xerces pour parser et modifier un fichier xml.
    Mon problème c'est que quand je modifie mon fichier, je perds la pemière ligne :
    <?xml version="1.0" encoding="utf-8"?>
    et que je n'arrive pas à trouver comment faire pour la générer !!

    Voici mon code :
    Code C++ : 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
     
    void ma Fonction(){
    XercesDOMParser parser;
    parser.parse(m_FileName);
    DOMDocument * m_pDOMDoc = parser.adoptDocument();
    // la je fais ce que j'ai à faire 
    DOMElement* pRoot = m_pDOMDoc->getDocumentElement();
    LocalFileFormatTarget myFormTarget(m_FileName);
    WriteTarget((XMLFormatTarget*)&myFormTarget, pRoot);
    }
     
    void WriteTarget(xercesc::XMLFormatTarget * myFormatTarget,xercesc::DOMNode* pNode)
    {
    // Création du DOM serialiseur
    XMLCh tempStr[100];
    XMLString::transcode("LS", tempStr, 99);
    DOMImplementation *impl = DOMImplementationRegistry::getDOMImplementation(tempStr);
     
    DOMWriter* theSerializer = ((DOMImplementationLS*)impl)->createDOMWriter();	
     
    theSerializer->writeNode(myFormatTarget, *pNode);
    theSerializer->release();
    }

    si quelqu'un peut m'aider, merci beaucoup !!!

    Pascale38

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 7
    Par défaut
    Salut Pascale,

    Au lieu de passer a ta fonction WriteTarget le parametre pRoot (qui est la racine de ton arbre) tu devrais lui passer le DomDocument m_pDOMDoc et tu recupereras bien ton prologue XML.

    Petites remarques :
    - Si tu avais auparavant un saut de ligne (ou plusieurs) entre ton prologue et ta racine, ce dernier sera perdu car le prologue ne fait pas partie de l'arborescence et donc les noeuds TEXT vide qui se trouvent entre le prologue et ta racine ne sont pas pris en compte dans la construction de l'arbre DOM.
    - Autre chose, si dans ton prologue tu ne specifies pas le parametre standalone celui sera rajoute au prologue genere avec la valeur "no" : <?xml version="1.0" encoding="UTF-8" standalone="no" ?>

    @+

    Mehdi

Discussions similaires

  1. [Xerces] Utilisation Donnees D'un XML avec Xerces C++
    Par Laeticia dans le forum Bibliothèques
    Réponses: 12
    Dernier message: 04/08/2006, 14h01
  2. [DOM] Pb création nodes XML dynamiques
    Par zzman dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 20/04/2006, 08h23
  3. DOM - naviguer dans un XML en javascript
    Par hpfx dans le forum Général JavaScript
    Réponses: 36
    Dernier message: 08/11/2005, 22h43
  4. [DOM] Génération dynamique fichier xml
    Par Fabouney dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 03/10/2005, 09h45
  5. Stratégie DOM ou SAX pour xml ?
    Par blackhorus dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 28/03/2005, 17h07

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