+sub process_file_to_buffer {
+ my ($filename, $obj, $clean) = @_;
+ $clean = 1 unless (defined($clean));
+
+ my ($buffer, $cleaner, $filter, $parser);
+
+ $buffer = XML::TemplateSAX::Buffer->new;
+
+ if ($clean) {
+ $cleaner = XML::TemplateSAX::Cleaner->new(Handler => $buffer, Content => $obj);
+ $filter = XML::TemplateSAX::Handler->new(Handler => $cleaner, Content => $obj);
+ } else {
+ $filter = XML::TemplateSAX::Handler->new(Handler => $buffer, Content => $obj);
+ }
+
+ # FIXME: hardcoding expat = not good?
+ $parser = XML::SAX::Expat->new(Handler => $filter);
+ $parser->parse_file($filename);
+
+ return $buffer;
+}
+