node->children = xmlNewTextLen(reinterpret_cast<const xmlChar *>(str.data()), str.size());
}
+Clone::Clone(const std::vector<Directive *> &subdirectives)
+ : subdirectives(subdirectives) {}
+
+void Clone::process(xmlNode *node, bool clean) {
+}
+
Substitute::Substitute(const unordered_map<string, Directive*> &substitution_map)
: substitution_map(substitution_map) {}
if (strcmp(reinterpret_cast<const char *>(attr->ns->href), "http://template.sesse.net/") == 0 &&
strcmp(reinterpret_cast<const char *>(attr->name), "id") == 0) {
id = reinterpret_cast<const char *>(xmlNodeGetContent(attr->children));
+
+ if (clean) {
+ if (attr->prev == NULL) {
+ child->properties = attr->next;
+ } else {
+ attr->prev->next = attr->next;
+ }
+ }
}
}
LIBXML_TEST_VERSION
xmlDocPtr doc = xmlParseFile(input_filename.c_str());
- root_directive->process(xmlDocGetRootElement(doc), false);
+ root_directive->process(xmlDocGetRootElement(doc), true);
xmlSaveFile(output_filename.c_str(), doc);
xmlCleanupParser();