小编kar*_*ora的帖子

$ twig-> purge给出空文件

我可能会问一个基本问题,但这会让我感到害怕.

以下是我的代码段

#!/usr/bin/perl

use strict;
use warnings;
use XML::Twig;


my $twig = new XML::Twig( twig_handlers => { TRADE => \&TRADE } );

$twig->parsefile('1510.xml');

$twig->set_pretty_print('indented');

$twig->print_to_file('out.xml');

sub TRADE {
    my ( $twig, $TRADE ) = @_;
    #added delete in place of cut
     $TRADE->cut($TRADE) unless
     $TRADE->att('origin') eq "COMPUTER";
}
Run Code Online (Sandbox Code Playgroud)

这是按预期工作的.它给了我所有的"原产地"等于"计算机"的交易.

但我需要处理跨越1 GB的XML文件.在这种情况下,它会"分割错误",因为它消耗了大量内存.

因此,为了解决这个问题,我试图实现XML :: Twig的"清除"概念

因此我将代码修改为:

#!/usr/bin/perl

    use strict;
    use warnings;
    use XML::Twig;


    my $twig = new XML::Twig( twig_handlers => { TRADE => \&TRADE } );

    $twig->parsefile('1510.xml');

    $twig->set_pretty_print('indented');

    $twig->print_to_file('out.xml');

    sub TRADE { …
Run Code Online (Sandbox Code Playgroud)

perl xml-twig

3
推荐指数
1
解决办法
270
查看次数

标签 统计

perl ×1

xml-twig ×1