Re: [xml] How to add a DTD to a document



On 3/9/2014 17:33, Nick Wellnhofer wrote:
I can’t find out how to add a DTD (internal subset) to a document without poking into libxml2’s internal 
data structures. The obvious approach is to add a xmlDtdPtr using
xmlAddPrevSibling on the document root. But this will cause a memory leak because xmlFreeDoc won’t free 
the DTD nodes. It only frees the DTDs pointed to by doc->intSubset and doc->extSubset. So do I have to 
deal with these struct members manually or is there a better way?

xmlCreateIntSubset() ? But it looks like you'll need to manually free previous xmlDtd first.

Suppose that I already have a xmlDtdPtr, for example from another document. This question came up when trying 
to correctly implement the “replaceNode” method in the Perl bindings.

Nick




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]