I have also experiences the
same problem. But I am using the sun XML-TR2 release as XML Parser.
The solution to this problem is to use changeNodeOwner() API on DocumentEx
(extension of Document interface) provided in sun's implementation. You can call
this API on your Document (which has the root node, where you want to append
nodes obtained from XPath Query) object and pass the node from XPath as
parameter to this API. After that if you append these nodes, it will
DOM Level 1 APIs doesn't have this support
defined in the spec. But DOM Level 2 spec has an API importNode() which I guess,
is what we need in this problem. I don't know if any XML Parser with DOM Level 2
support is available as of now.
Try using sun's XML
From: Prakash Mandgi
Sent: Thursday, October 21, 1999 1:47
Subject: XML Implementation in IBM
XML4J2_0_15 parser with XPath
I am running into a problem using the
lotus XSL XPath implementation on IBM XML4J2_0_15.
I have an rmi service which basically
takes and XPath string ( query string ), runs it across a persisted DOM
object, which is retrieved from the object database, and
returns a document fragment back. The problem i am running into is creating a
new document object of which the root element is the document fragment. I am
trying to append to this root node, the nodes obtained from the XPath query.
Unfortunately the implementation of IBM parsers is that it compares
the nodes owner document with that of the element under
which i need to insert the nodes. If the owner document are not the same, as
it is my case, it will not allow you to append a child.
Is this a DOM thingie or is it at an IBM implementation
Does any one have a way to work around this problem without
cloning the document, which can be fairly large, and then
creating a document fragment which has the Node
list embedded within it.
Is there a better implementation than
that IBM parser, with source code ;-) which has
the following features
- XPath integration
- XML TreeDiff to find out
the difference between two dom documents and then merging the
Has any one implemented DOM with copy constructors for the
node impl etc objects ( I know its a C++ feature
but it makes life much simpler ;-) )
-- Java 1.2 implementation
- Need the entire source code in java