]> git.sesse.net Git - xml-template/commitdiff
Add perl-sax/attribute[23] tests. Work directly.
authorsgunderson@bigfoot.com <>
Thu, 1 Mar 2007 12:51:07 +0000 (13:51 +0100)
committersgunderson@bigfoot.com <>
Thu, 1 Mar 2007 12:51:07 +0000 (13:51 +0100)
perl-sax/XML/TemplateSAX.pm
perl-sax/attribute2.pl [new file with mode: 0644]
perl-sax/attribute3.pl [new file with mode: 0644]

index 10714a435bdbb7faf03fb7b1e77d39916ef88a0c..638f4b2582425d0539564a1351beb62f05c7bf51 100644 (file)
@@ -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;
diff --git a/perl-sax/attribute2.pl b/perl-sax/attribute2.pl
new file mode 100644 (file)
index 0000000..3821a33
--- /dev/null
@@ -0,0 +1,13 @@
+#! /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;
diff --git a/perl-sax/attribute3.pl b/perl-sax/attribute3.pl
new file mode 100644 (file)
index 0000000..6b955cc
--- /dev/null
@@ -0,0 +1,14 @@
+#! /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;