Use DOM_Document::importNode() to transfer nodes from one document to
another.

You'd get something like:

        // Find oldChild in doc1
        DOM_Element oldCreationInformationElem =
                mp7->findElementByName("CreationInformation", 0);

        // Find newChild in doc2
        DOM_Element newCreationInformationElem =
                mp7LabelObj->findElementByName("CreationInformation", 0);

        // Import node
        DOM_Node imported =
audioVisualElem.getOwnerDocument().importNode(newCreationInformationElem);

        // replace oldCreationInformationElem
        audioVisualElem.replaceChild(imported,
                                             oldCreationInformationElem);





> -----Original Message-----
> From: Eric Rehm [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, June 20, 2001 7:55 AM
> To: [EMAIL PROTECTED]
> Subject: Insert DOM_Node from one DOM_Document to another DOM_Document?
>
>
> I'm using Apache Xerces-C V1.4.0.
>
> I've got two DOM_Documents in memory, and I want to subtitute a DOM_Node
> instance
> from one DOM_Document for a DOM_Node instance in another DOM_Document
>
>       Doc1:
>       -----
>       <Mpeg7>
>         <AudioVisual>
>
> <CreationInformation>...oldChildern..</CreationInformation>  // oldChild
>         </AudioVisual>
>       </Mpeg7>
>
>       Doc2:
>       -----
>       <Foo>
>
> <CreationInformation>...newChildren...</CreationInformation> // newChild
>       </Foo>
>
>       Modified Doc1:
>       --------------
>       <Mpeg7>
>         <AudioVisual>
>
> <CreationInformation>...newChildren...</CreationInformation>  // newChild
>         </AudioVisual>
>       </Mpeg7>
>
> However, I can't do this directly, i.e., the following code generates
> an access violation (and I can't seem to catch the exception when
> I put the replaceChild call in a try...catch block):
>
>       // Find parent in doc1
>       DOM_Element audioVisualElem =
>               mp7->findElementByName("AudioVisual", 0);
>
>       // Find oldChild in doc1
>       DOM_Element oldCreationInformationElem =
>               mp7->findElementByName("CreationInformation", 0);
>
>       // Find newChild in doc2
>       DOM_Element newCreationInformationElem =
>               mp7LabelObj->findElementByName("CreationInformation", 0);
>       // So far so good...
>
>       // Replace doc1/oldchild with doc2/newchild
>       audioVisualElem.replaceChild(newCreationInformationElem,
>                                            oldCreationInformationElem);
>
> I assume I probably should be seeing a DOMExpection::WRONG_DOCUMENT_ERR.
> If so, this exception would make a lot of sense, i.e., each
> DOM_Node belongs
> to it's respective DOM_Document parent, and ;-( you can't change parents.
>
> However, is there another way to do this?  This seems like a common thing
> to do: grab a node from one document and append/insert/replace in another
> document.
>
> /eric rehm
> singingfish.com
> a thomson multimedia company
> [EMAIL PROTECTED]
> 1.206.883.3013
> 1.206.354.3459 (cell)
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


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

Reply via email to