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/C++] Cloner un noeud dans un autre Arbre DOM


Sujet :

XML

Vue hybride

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 142
    Par défaut [Xerces/C++] Cloner un noeud dans un autre Arbre DOM
    Bonjour à tous,

    voilà je travaille avec 2 arbres DOM et je souhaite cloner un nœud du premier arbre pour le mettre dans le second.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void addDomNode(DOMNode *NewNode, const QString &XPath)
    {
    BIBDOMTreeModel *TreeModel = getDOMTreeModel();
    DOMNode *LastNode = TreeModel->findNode(XPath);
    DOMNode *ParentNode = LastNode->getParentNode();
    DOMNode *ClonedNode = NewNode->cloneNode(true);
    ParentNode->appendChild(ClonedNode);
    }
    Mon problème : étant donné que NewNode a été créé dans le premier arbre DOM, il est lié au DOMDocument du premier arbre, qui est différent du DOMDocument du second arbre TreeModel. Du coup, le appendChild plante systématiquement avec le message suivant :

    A node is used in a different document than the one that created it

    Comment résoudre mon problème étant donné que je ne peux pas changer le DOMDocument de NewNode, et que je n'ai pas envi de me fabriquer une fonction récursive qui par cloner mon noeud convenablement !!!

    merci pour votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 142
    Par défaut
    Solution trouvée ...

    Utiliser la fonction importNode(DOMNode*, bool) de la classe DOMDocument pour cloner le Noeud. Le clone ne sera ainsi associé à aucun DOMDocument (=null). Le clone pourra donc être ajouté à n'importe quel autre arbre DOM.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. copie un arbre dans un autre arbre vide
    Par netwrok dans le forum Débuter
    Réponses: 1
    Dernier message: 10/06/2010, 23h22
  2. Ajout noeud d'un doc dans un autre doc Xml
    Par phfle1 dans le forum VB.NET
    Réponses: 1
    Dernier message: 26/06/2008, 21h10
  3. [DOM] insertion d'une balise dans une autre avec DOM
    Par sebus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/03/2007, 00h16
  4. [DOM] (org.w3c.dom) copier un noeud d'un fichier XML dans un autre fichier XML
    Par snoop dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 13/02/2007, 17h22
  5. [DOM] importer un noeud d'un fichier xml et le coller dans un autre fichier
    Par iznogoud36 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 21/06/2006, 12h55

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