Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

From: Laurent Foret (l.foret@korom.net)
Date: 26/06/2001 - 11:30


Je ne suis pas un pro en C++, loin de la, et j'ai pas tout compris ce que
vous voulez faire. Mais il y pas un probleme de visibilite entre les deux
elem definis dans chacune de vos deux methodes.

De plus ou est declare futurFather et comment est il initialisee ?

-------------------------------------

Laurent Foret

Service developpement

l.foret@korom.net

www.korom.net

> -----Message d'origine-----
> De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
> part de Benoit Lefevre
> Envoye : mardi 26 juin 2001 12:44
> A : xml-tech@xmlfr.org
> Objet : [xml-tech] Xerces C++ : problemes avec DOM_Node::appendChild
>
>
>
>
> Bonjour.
>
> J'ai un probleme avec un appel a la methode DOM_Node::appendChild.
> Cet appel me renvois une exception DOM_DOMException avec un
> code erreur de 3 (HIERARCHY_REQUEST_ERR).
>
> Voici le code qui me produit cette exception (lors de l'appel a
> AddSomthing):
>
> -------------------------------------------------
>
> // Cette methode fabrique un nouvel arbre DOM et l'utilise
> // au cours d'une operation d'initialisation.
> void myclass::AddSomething(Params ...)
> {
> // je recupere le DOM_Document sur lequel je travail
> // grace a une structure de donnee perso, et j'utilise ce
> // document pour fabriquer un nouvel objet DOM_Element.
> DOM_Element elem;
> elem =
> personalDataStructure.getUserData().getOwnerDocument().createEleme
> nt(DOMString("A_Tag"));
>
> // Une fois cet element cree je fabrique un DOM_TreeWalker pointant
> // sur cet element. Cette manipulation me permet de reutiliser une de
> // mes methode qui fonctionne avec des DOM_TreeWalker
> DOM_TreeWalker dtw;
> dtw = msg.getOwnerDocument().createTreeWalker(msg,
> ALL_EXCEPT_TEXT , NULL, false);
>
> // J'ajoute quelques attributs a l'element nouvellement cree.
> msg.setAttribute( DOMString("Att1") , DOMString("AttVal1") );
> msg.setAttribute( DOMString("Att2") , DOMString("AttVal2") );
> ...
>
> // finalement je fait appel a la fonction que je souhaite
> re-Utiliser.
> testAndAdd(dtw);
> }
>
>
>
>
> // Voici la fonction en question.
> void myclass::testAndAdd(DOM_TreeWalker &dtw)
> {
> // je recupere l'element precedement cree via le TreeWalker.
> DOM_Element elem = (DOM_Element &) dtw.getCurrentNode();
>
> // j'effectue quelques tests dessus.
> if( elem.getAttribute ...... )
> .....
>
> // finnalement si cet element n'a pas de parent, je l'ajoute
> a un Element
> // present dans ma classe.
> bool orphan = (elem.getParentNode() == NULL);
> if( orphan )
> {
> // Avant de faire appele a "appendChild" je test
> // la compatibilite pere / fils
> if( elem.getOwnerDocument() == futurFather.getOwnerDocument() )
> futurFather.appendChild(elem); /* L'EXCEPTION
> EST LEVE ICI */
> else
> {
> // Je leve une exception si il y a incompatibilite.
> throw MyException();
> exit(0);
> }
> }
> }
>
>
> -------------------------------------------------
>
>
> Si je me refere a la documentation de la methode
> DOM_Node::appendChild(), l'exception est leve :
>
> - soit parce que j'ai esseille d'inserer un mauvais type de
> noeud, ce qui n'est pas le cas.
>
> - soit parce que j'ai esseille d'ajouter un de ses ancetres au
> noeud pere. Ceci me semble egalement impossible car le
> noeud que j'esseille d'inserer est cree a la vole lors de
> l'appel a AddSomething. Il ne peut donc pas etre un ancetre
> valide du noeud pere.
>
> Si un pro de Xerces C++ a la moindre petite idee du pourquoi
> du comment, je suis preneur :).
>
> Cordialement.
>
> benoit lefevre.
>
>
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
> Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
>
> Cette liste est a votre disposition pour discuter en francais de
> tout sujet technique lie a XML.
>
> Pour resilier votre abonnement, envoyez un message contenant
> la commande "unsubscribe" a xml-tech-request@xmlfr.org
> (mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
>
>

--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !

Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).

Cette liste est a votre disposition pour discuter en francais de tout sujet technique lie a XML.

Pour resilier votre abonnement, envoyez un message contenant la commande "unsubscribe" a xml-tech-request@xmlfr.org (mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)



Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement