Hi Jake,

The behaviour of Document.cloneNode(true) [1] is implementation dependent. 
In Xerces it will create a new Document and then import the children from 
the original document. I would be really surprised if reparsing the 
document performed better than an in-memory copy (unless you had a 
UserDataHandler [2] registered which does some heavy operation in response 
to the cloning/importing).

[1] 
http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ID-3A0ED0A4
[2] 
http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#UserDataHandler

Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: [EMAIL PROTECTED]
E-mail: [EMAIL PROTECTED]

Jacob Kjome <[EMAIL PROTECTED]> wrote on 04/16/2006 02:17:10 AM:

> 
> I'm wondering what's the best approach to cloning an entire 
> document?  Would it be better to keep a master copy in memory and 
> then create a new document and import the other document in there, or 
> would it be better to simply reparse the document every time (where 
> the document is used over and over again as a template, a copy is 
> created and manipulated on each HTTP request, then serialized to the 
> browser)?  If I keep the document in memory and know I am dealing 
> with the Xerces2 implementation, can I just call cloneNode(true) and 
> get an identical copy of the whole document, including doctype, 
> entities, entity references, etc...?  Again, would this be more 
> efficient than reparsing the document each time with, say, the 
> Xerces2 DOMParser?  Is there a clear-cut answer to this, or does it 
> depend on document size or other aspect of the document or environment?
> 
> thanks,
> 
> Jake
> 
> 
> ---------------------------------------------------------------------
> 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