X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=php5-swig%2Fxml-template.swig;h=517595168d99f6e129cd09560502e98b1a08d05a;hb=37f811afb43c0b02acd519c530adb404c145d67d;hp=02314f0e81637b710b1adcebcff23ce52748a486;hpb=f5af96eb727899f04c322640ee36028441c29ec9;p=xml-template diff --git a/php5-swig/xml-template.swig b/php5-swig/xml-template.swig index 02314f0..5175951 100644 --- a/php5-swig/xml-template.swig +++ b/php5-swig/xml-template.swig @@ -88,13 +88,21 @@ Directive* convert_php_objects_to_directive(zval *obj) return NULL; } -XmlDocPtrWrapper XML_Template_process_file(const char *input_filename, Directive *root_directive, bool clean) +XmlDocPtrWrapper XML_Template_process_file(const std::string &input_filename, Directive *root_directive, bool clean) { xmlDocPtr ret = process_file(input_filename, root_directive, clean); delete root_directive; return XmlDocPtrWrapper(new XmlDocWrapper { ret }); } +XmlDocPtrWrapper XML_Template_process(XmlDocPtrWrapper doc, Directive *root_directive, bool clean) +{ + xmlDocPtr new_doc = xmlCopyDoc(doc->ptr, 1); + root_directive->process(xmlDocGetRootElement(new_doc), clean); + delete root_directive; + return XmlDocPtrWrapper(new XmlDocWrapper { new_doc }); +} + namespace { int write_to_string(void *context, const char *buffer, int len) @@ -125,6 +133,7 @@ std::string XML_Template_convert_doc_to_string(XmlDocPtrWrapper doc) $1 = convert_php_objects_to_directive(*$input); } -XmlDocPtrWrapper XML_Template_process_file(const char *input_filename, Directive *root_directive, bool clean); +XmlDocPtrWrapper XML_Template_process_file(const std::string &input_filename, Directive *root_directive, bool clean); +XmlDocPtrWrapper XML_Template_process(XmlDocPtrWrapper doc, Directive *root_directive, bool clean); std::string XML_Template_convert_doc_to_string(XmlDocPtrWrapper doc);