<?xml version="1.0" encoding="UTF-8"?>
<policy name="Cur_policy" version="3.2.1">
<policyrules>
<Rule Action="allow" Enabled="true" RuleID="F68E32">
<source addr="10.4.5.3" srcport="any"/>
<dest addr="199.5.4.3" destport="80"/>
</Rule>
<Rule Action="allow" Enabled="true" RuleID="78E21D">
<source addr="10.4.0.0-10.4.255.255" srcport="any"/>
<dest addr="any" destport="80"/>
</Rule>
</policyrules>
</policy>
####
<?xml version="1.0" encoding="UTF-8"?>
<policy name="Cur_policy" version="3.2.1">
<Rule Action="allow" Enabled="true" RuleID="F68E32">
<source addr="10.4.5.3" srcport="any"/>
<dest addr="199.5.4.3" destport="80"/>
</Rule>
<Rule Action="allow" Enabled="true" RuleID="78E21D">
<source addr="10.4.0.0-10.4.255.255" srcport="any"/>
<dest addr="any" destport="80"/>
</Rule>
</policy>
####
#!/usr/bin/perl
use warnings;
use strict;
use XML::Twig;
my ( $in_XML_file, $out_XML_file ) = @ARGV;
# create objects
my $ref_reader = XML::Twig->new( twig_handlers =>
{
'policyrules' => \&policyrules_handler,
'Rule' => \&rule_handler
}
);
$ref_reader->parsefile( $in_XML_file )
or die " $in_XML_file is not parsable\n";
open my $out_fh, '>', $out_XML_file
or die " $out_XML_file cannot be written: $!";
$ref_reader->print( $out_fh );
close $out_fh;
sub policyrules_handler
{
my( $t, $elt)= @_; # arguments for all twig_handlers
# $elt->delete;
}
sub rule_handler
{
my( $t, $elt)= @_; # arguments for all twig_handlers
$elt->set_att( 'new_attr' => 'dummyValue' );
}