[xml] xmlReadFile Fails Where xmlParseFile Succeeds
- From: Paul Braman <bramankp gmail com>
- To: xml gnome org
- Subject: [xml] xmlReadFile Fails Where xmlParseFile Succeeds
- Date: Mon, 27 Jul 2015 14:38:23 -0400
The following bit of code fails
xmlInitParser();
xmlDocPtr maindoc = xmlReadFile("maindoc.xml", NULL, 0);
xmlDocPtr subdoc = xmlReadFile("subdoc.xml", NULL, 0);
xmlNodePtr content = xmlDocGetRootElement(subdoc);
xmlUnlinkNode(content);
xmlAddChild(xmlDocGetRootElement(maindoc), content);
xmlFreeDoc(subdoc);
xmlFreeDoc(maindoc);
xmlCleanupParser();
with a crash upon calling xmlFreeDoc(maindoc) (problem freeing memory) where this code succeeds just fine and dandy
xmlInitParser();
xmlDocPtr maindoc = xmlParseFile("maindoc.xml");
xmlDocPtr subdoc = xmlParseFile("subdoc.xml");
xmlNodePtr content = xmlDocGetRootElement(subdoc);
xmlUnlinkNode(content);
xmlAddChild(xmlDocGetRootElement(maindoc), content);
xmlFreeDoc(subdoc);
xmlFreeDoc(maindoc);
xmlCleanupParser();
I understand I should use xmlReadFile instead of xmlParseFile. However, I can't figure on what's different between the two that could be causing the crash in the first block of code?
Note, I've tried with multiple versions, even 2.9.2.
Alternatively, how *should* I be structuring the code to do what I'm doing here? (I know a call to
xmlAddChild(xmlDocGetRootElement(maindoc), xmlCopyNode(xmlDocGetRootElement(subdoc), 1));
in place of the get/unlink/add sequence works but I'd like to understand why the code above fails.)
- Paul Braman
[
Date Prev][Date Next] [
Thread Prev][Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]