Hello,

For an XML editing application I would like to copy a node from one DOM to 
another.
So I created two parsers and loaded each one with an XML file. The 
application tries to insert a branch of nodes (one node with optional 
children) from the second DOM tree into the first one.
Whether I use a validating parser or not does not seem to matter, it always 
breaks on ParentNode::insertBefore() as shown in the following back trace 
snippet :

#9  0x407b8fec in __terminate () from /usr/lib/libstdc++-libc6.1-2.so.3
#10 0x407b9a24 in throw_helper (eh=0x80defa8, pc=0x805797b, 
    my_udata=0xbffff054, offset_p=0xbffff050)
   from /usr/lib/libstdc++-libc6.1-2.so.3
#11 0x407b9bdf in __throw () from /usr/lib/libstdc++-libc6.1-2.so.3
#12 0x401306ef in ParentNode::insertBefore ()
    at 
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3/std/bastring.cc:177
#13 0x40129e8e in NodeImpl::appendChild ()
    at 
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3/std/bastring.cc:177
#14 0x400de8c9 in DOM_Node::appendChild ()
    at 
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3/std/bastring.cc:177

What I try to do is :
- locate the position in the tree in the first DOM, select the appropriate 
DOM_Node
- locate the DOM_Node to copy from in the second DOM and create a clone using 
DOM_Node::cloneNode(true) (just to be sure, I tried also w/o cloning)
- insert the cloned node (may have children) into the first DOM using 
DOM_Node::appendChild() -- that's where the problem starts.

Accessing the nodes in question with getNodeName(), getNodeType(), 
getFirstChild() etc. does not yield a problem so I could not find an obvious 
null pointer dereference.
Manupulating the DOM with appendChild with a node created by 
DOM_Document::create{Element|TextNode|Comment} works fine.

Should it be possible to copy a node between DOMs, meaning I did something 
wrong or is that not (yet) supposed to work ?

I use xerces-c 1.5.0, glibc 2.1.3, gcc 2.95.2 on Linux 2.4.5 - everything 
compiled from source. I'm new to xerces so it's quite possible that I 
overlooked something obvious.

All hints appreciated,
Rolf

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

Reply via email to