# - You can no longer insert a DOM tree, naturally. Instead, you can set up
# an XML::TemplateSAX::Buffer, let it gobble up your data, and send it
# in the way you'd insert a DOM tree. process_file_to_buffer does this
-# transparently for you, returning a buffer you can give in.
+# transparently for you, returning a buffer you can give in. (In theory,
+# one could avoid the buffering and just defer the parsing/filtering until
+# it's needed, but Expat seems non-reentrant, which means starting a parser
+# from within a begin_element callback blows up.)
#
use strict;
use XML::SAX::Writer;
use XML::TemplateSAX::Buffer;
use XML::TemplateSAX::Cleaner;
-use XML::TemplateSAX::Deferred;
use XML::TemplateSAX::Handler;
package XML::TemplateSAX;
$clean = 1 unless (defined($clean));
my ($cleaner, $filter, $parser);
+ my $str = '';
if ($clean) {
$cleaner = XML::TemplateSAX::Cleaner->new(Handler => $handler);
# FIXME: hardcoding expat = not good?
$parser = XML::SAX::Expat->new(Handler => $filter);
$parser->parse_file($filename);
+
+ return $str;
}
sub process_file {
return $buffer;
}
-sub process_file_to_placeholder {
- my ($filename, $obj, $clean) = @_;
-
- return XML::TemplateSAX::Deferred->new($filename, $obj, $clean);
-}
-
sub alternate {
my ($tag, $array, @elems) = @_;