]> git.sesse.net Git - xml-template/blobdiff - perl-sax/XML/TemplateSAX.pm
Fix some junk; Cleaner doesn't take an object.
[xml-template] / perl-sax / XML / TemplateSAX.pm
index 10714a435bdbb7faf03fb7b1e77d39916ef88a0c..b473dd05cfe910b8343d474c25248c1359fe8872 100644 (file)
@@ -37,7 +37,7 @@ sub process_file {
        $writer = XML::SAX::Writer->new(Output => \$str);
 
        if ($clean) {
-               $cleaner = XML::TemplateSAX::Cleaner->new(Handler => $writer, Content => $obj);
+               $cleaner = XML::TemplateSAX::Cleaner->new(Handler => $writer);
                $filter = XML::TemplateSAX::Handler->new(Handler => $cleaner, Content => $obj);
        } else {
                $filter = XML::TemplateSAX::Handler->new(Handler => $writer, Content => $obj);
@@ -59,7 +59,7 @@ sub process_file_to_buffer {
        $buffer = XML::TemplateSAX::Buffer->new;
 
        if ($clean) {
-               $cleaner = XML::TemplateSAX::Cleaner->new(Handler => $buffer, Content => $obj);
+               $cleaner = XML::TemplateSAX::Cleaner->new(Handler => $buffer);
                $filter = XML::TemplateSAX::Handler->new(Handler => $cleaner, Content => $obj);
        } else {
                $filter = XML::TemplateSAX::Handler->new(Handler => $buffer, Content => $obj);
@@ -72,4 +72,19 @@ sub process_file_to_buffer {
        return $buffer;
 }
 
+sub alternate {
+       my ($tag, $array, @elems) = @_;
+
+       my $i = 0;
+       my $num = scalar @elems;
+
+       for my $ref (@$array) {
+               if (defined($ref)) {
+                       $ref->{$tag} = $elems[$i++ % $num];
+               }
+       }
+
+       return $array;
+}
+
 1;