Re: [xml] xmlNodePtr valid after its document has been modified?

Daniel Veillard wrote:
On Wed, Nov 05, 2008 at 04:56:11PM +0100, Martin Trappel wrote:
Hi all!

a) Given a xmlNodePtr, is it still valid after modifying the document?
b) Given the xmlChar* Value of an attribute, is it still valid after modifying the node/document ?

xmlDoc* doc;
xmlNode* doc_node = (... obtain node of doc ...);
xmlChar* node_attrib_val = xmlGetProp(doc_node, "TEST");
// Modify the doc, possibly adding and removing other nodes
doc_node->... (Is the NodePtr still valid?)
// Modify the node by adding or removing Attributes/Properties
printf("%s", (const char*)node_attrib_value); // attribute value still valid??

Does libxml2 guarantee this? (v 2.6.27)

  I think yes. The only danger I can think of is colapsing of adjacent
text nodes, and namespace references, that's the only cases were a node
not directly used in a tree modification may change or vanish due to
the modification side effects,

Thank you. I was only thinking of Element Nodes and Attributes. (plus, I just saw that I've been actually using this all along without realizing it, so I should really be OK.)


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