Oh, you know what, I thought it might be a good idea
to throw some negative case data into the mix.  This
is what I came up with:

<code>
#!/usr/bin/env perl6

use strict;

my @Data = '<TASK type="A">Mission A',
           '   <NAME type="P">Peter Meter</NAME>',
           '   <NAME type="P">John Deer</NAME>',
           '   <NAME type="P">Sam Horse</NAME>',
           '</TASK>',
           '',
           '<REJECT type="A">Mission A',
           '   <NAME type="P">Tom</NAME>',
           '   <NAME type="P">Dick</NAME>',
           '   <NAME type="P">Harry</NAME>',
           '</TASK>',
           '',
           '<TASK type="D">Mission D',
           '   <NAME type="P">Sol Wheat</NAME>',
           '   <WHAT type="P">Micky Mouse</NAME>',
           '   <NAME type="P">Ted Moon</NAME>',
           '</TASK>';
# for @Data -> $Line { say "$Line"; }

my $TaskTag = 0;
for @Data -> $Line {
   if $Line.contains( "\<TASK type" ) { $TaskTag = 1; }
   elsif $Line.contains( "/TASK" )  { $TaskTag = 0; }
   elsif ( $TaskTag == 1 ) && ( $Line.contains( "\<NAME type" ) ) {
      ( my $Name = $Line) ~~ s/.*?\>//;
      $Name ~~ s/\<.*//;
      say $Name;
   }
}
</code>

$ ./XMLSub.pl6
Peter Meter
John Deer
Sam Horse
Sol Wheat
Ted Moon


--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I am Windows
I am the Blue Screen of Death
No one hears your screams
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Reply via email to