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;
--- /dev/null
+#! /usr/bin/perl
+use XML::TemplateSAX;
+
+my $doc = XML::TemplateSAX::process_file('../xml/clone.xml', {
+ 'color' => 'blue',
+ '#things' => XML::TemplateSAX::alternate('li/class', [
+ { 'li' => 'Raindrops on roses' },
+ { 'li' => 'Whiskers on kittens' },
+ { 'li' => 'Bright copper kettles' },
+ { 'li' => 'Warm, woolen mittens'},
+ ], 'odd', 'even')
+});
+print $doc;
--- /dev/null
+#! /usr/bin/perl
+use XML::TemplateSAX;
+
+my $doc = XML::TemplateSAX::process_file('../xml/clone.xml', {
+ 'color' => 'blue',
+ '#things' => XML::TemplateSAX::alternate('li/class', [
+ { 'li' => 'Raindrops on roses' },
+ { 'li' => 'Whiskers on kittens' },
+ undef,
+ { 'li' => 'Bright copper kettles' },
+ { 'li' => 'Warm, woolen mittens'},
+ ], 'odd', 'even')
+});
+print $doc;