use warnings; use strict; use XML::Twig; my $str = ' <DataEnd> <Dataentry> <Data>aaaaaa</Data> <Data>aaaaaa</Data> <Data>aaaaaa</Data> </Dataentry> <Dataentry> <Data>aaaaaa</Data> <Data>aaaaaa</Data> <Data>aaaaaa</Data> </Dataentry> <Dataentry> <Data>aaaaaa</Data> <Data>bbbbbb</Data> <Data>aaaaaa</Data> </Dataentry> <Dataentry> <Data>aaaaaa</Data> <Data>aaaaaa</Data> <Data>aaaaaa</Data> </Dataentry> </DataEnd> '; my $t = XML::Twig->new( twig_handlers => { Dataentry => \&dentry } ); $t->parse($str); sub dentry { my ($t, $ent) = @_; my $found = 0; for my $data ($ent->children('Data')) { if ($data->text() eq 'bbbbbb') { $found = 1; next; } } if ($found) { # do something } }
In reply to Re: Match on line, read backwards to opening xml tag then forward to closing tag
by toolic
in thread Match on line, read backwards to opening xml tag then forward to closing tag
by shadowfox
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |