: str(str) {}
void Replace::process(xmlNode *node, bool clean) {
- node->children = xmlNewTextLen(reinterpret_cast<const xmlChar *>(str.data()), str.size());
+ xmlNodeSetContentLen(node, reinterpret_cast<const xmlChar *>(str.data()), str.size());
if (clean) {
clean_node(node);
}
}
}
- node->children = NULL;
+ xmlFreeNodeList(node->children);
+ node->content = NULL;
+ node->children = node->last = NULL;
+
for (auto child : new_nodes) {
xmlAddChild(node, child);
}