假设我的XML文件在一行中有多个<Timestamp>
标记。我正在逐行阅读文档。我如何计算每行中有多少这些标签?我想要这样的东西:
foreach "<Timestamp>" in $line {
print "FOund";
}
有什么想法吗?
答案 0 :(得分:3)
while ($line =~ /<Timestamp>/g) {
print "Found\n";
}
应该做的伎俩。 /g
修饰符在那里非常重要。请参阅perlretut
中的Using regular expressions in Perl,其中有一部分是全局匹配。
答案 1 :(得分:1)
这是XML,use
XML::Twig
:
my $twig = XML::Twig->new( twig_roots => { Timestamp => 1 });
$twig->parsefile( $xml_file_path );
my $timestamp_count = ( my @a = $twig->root->children( 'Timestamp' ));
答案 2 :(得分:0)
'redo'控制语句重新启动当前语句块的执行。您可以使用它来编写类似的内容:
foreach $line (<>)
{
$tag = $line =~ m/(<.*>)/;
push @tags, $tag;
if( $tag ) redo;
}
警告,我没有跑过这个。
希望有所帮助。