XML::Twig+twig_roots的用法

在处理一个很大xml文件的时候,你可以用XML::Twig结合twig_roots这个参数建立一个仅仅包含你感兴趣的元素的树,这个树包含xml文件的root和twig_roots指定的元素,其中twig_roots指定的元素是这个root的孩子。这样节省内存。

#!/usr/bin/perl -w
use strict;
use XML::Twig;
my $file = shift;  # 文件
my $field = shift; # 指定的元素

my $t = XML::Twig->new(twig_roots => {$field => 1});
$t->parsefile($file);
my $root = $t->root;
foreach ( $root->children ) {
    print $_->gi . " => " . $_->text, "\n"
}

#!/usr/bin/perl -w
use strict;
use XML::Twig;
my $file = shift;  # 文件
my $field = shift; # 指定的元素

my $t = XML::Twig->new(twig_roots => {$field => \&print_tag})->parsefile($file);

sub print_tag {
    my ( $t, $sec ) = @_;
    print $sec->gi, "\n";
    $t->purge;
}

这篇文章: 有用 无用 创建 2012-01-12 15:17:35 / 更新 2013-03-23 12:33:18