Hi

     I'm having troubles to use the DOM part of Xerces C++.
     On one hand i have a DOM object that i've loaded from a XML file.
     On the other hand i have my own acces structure (a map).

     My problem is to be able to fill my structure according to the DOM object.
     Actualy my map is a <string,DOM_Element *> map.
     I'd like to use it to have a quick access to some part of the DOM object.
     when i parse the DOM object to fill my map i use this kind of code :

     void recursiveFill(DOM_Element &theDom)
     {

          ...
          myMap_.insert( pair<string,DOM_Element *>(aString, &theDom));
          ...

          DOM_NODEList theList = theDom.getChildNodes();
          for( int i=0 ; i < theList.getLength() ; i++ )
               if(theList.item(i).getNodeType == DOM_Node::ELEMENT_NODE)
               recursiveFill( (DOM_Element &) theList.item(i));
          ...
     }


     the problem is :

     - when i've finished to fill my map, all the pair that have been
       store inside are pointing to the same DOM_Element !?!!? (memory speeking).

     - when i try to display the memory address of the "theDom" variable during the
       recusive calls, this one never change !?!!??!

     - even if the address of "theDom" variable never change, the data it's
       representing change (during recusive calls).

     i guess it is due to the use of a function call by reference, but i'm not that 
good
     in C++ to correct the problem.

     None the less, i've tryed to use pointers insted of references, but except a new
     casting problem it didn't change anything

     If someone have an idea, a clue, an advice or even better an exemple ...
     i'm higly interessed.

PS: sorry, i'm not fluent in english neither :).

thank you.

benoit lefevre



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to