You need to get a good book on the DOM APIs to understand this problem.
Look at DOM_Document::importNode)() for more information.

The core dump is a result of your application not catching the exception
that Xerces is throwing when you perform an illegal operation, which is
inserting a node from another document.

Dave



                                                                                       
                       
                      "Bruce Reid"                                                     
                       
                      <b.reid@aristosl         To:      "Xerces-C-Dev" 
<[EMAIL PROTECTED]>          
                      ogic.com>                cc:                                     
                       
                                               Subject: Cloning node from one tree, 
inserting into a          
                      01/02/2002 11:36         different tree                          
                       
                      AM                                                               
                       
                      Please respond                                                   
                       
                      to xerces-c-dev                                                  
                       
                                                                                       
                       
                                                                                       
                       





Being new to the DOM  programming world, I'm experimenting with some of the
sample apps to learn about  DOM capabilities and limitations. I'm planning
an application which will need to  parse multiple XML source documents, and
create from them a new document  containing some components from each of
the source documents. I have  successfully performed a deep clone of an
element of document1, after which my  attempt to insert�the new node�into
an element of document2 causes a  core dump.

If I modify the code  so that the node being inserted is created from
scratch using  document2.createElement(), then the insertion has no
trouble. So I'm wondering  if cloning from one tree, and then inserting the
clone into a different tree is  even possible? If it is, then there must be
some subtlety that I'm missing. If  it's not possible, then the only way I
can think of to accomplish the same  result would be to traverse the node
to be copied, and reconstruct it element by  element in the tree to which
it is to be inserted. But that seems to  inconvenient to be reasonable.

Can someone lend  some advice to get me over this hump? My attempts to
analyze the core file have  not provided much useful information. Even
though I have built the Xerces  library with the debug option, I must not
have given the debugger sufficient  search path information, because after
the call to ParentNode::insertBefore() in  my own source file, the
subsequent calls leading to the crash are displayed  without any of the
symbolic information that would be needed to shed more light  on the
problem. Any info on which source directories should be included in the
search path would also be appreciated. I'm currently telling it to look in:
$XERCESCROOT/src/dom:$XERCESCROOT/src/parsers:$XERCESCROOT/src/util:.

Thanks for any  help,
Bruce  Reid




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

Reply via email to