A0a0Activeactive...
A1a1Activeactive...
####
#!/usr/bin/perl -w
use strict;
use warnings;
use XML::Rules;
my %data;
my @rules = (
my $id; #$id will be the _content of DISPLAY after the Property Name
my $var; #$var will be the _content of DISPLAY
PROPERTY => sub {
if ($_[1]{NAME} eq "id"){
$data{$id} = {};
}
else ($data{$id} = {$_[1]{NAME} => $var})
}
},
DISPLAY => sub {#some code to initialize $var};
my $xr = XML::Rules->new( rules => \@rules, stripspaces => 2 );
$xr->parse();
####
#!/usr/bin/perl -w
use strict;
use warnings;
use vars qw/ %options /;
use Getopt::Std;
use XML::Rules;
use Data::Dumper;
#.....
# Code to treat file
#.....
my %data;
my $temp; my $id; my $trigger = 0;
my @rules = (
PROPERTY => sub {
if ($_[1]{NAME} eq "id"){
$data{$id} = {}; #Creates empty hash using the id as the key
$trigger = 1;
}
elsif ($_[1]{NAME} eq "class"){ #class is the last tag before the new line
$data{$id} -> {@{$_[1]}{NAME}} = $temp;
$trigger = 0; #this resets the trigger to let the script know that the next property is
} #going to be the id
else {
$data{$id} -> {@{$_[1]}{NAME}} = $temp;
}
},
DISPLAY => sub {
if ($trigger == 0){
$id = @{$_[1]}{_content};
}
else {
$temp = @{$_[1]}{_content};
}
},
);
my $xr = XML::Rules->new( rules => \@rules, stripspaces => 2 );
$xr->parsefile($File);
print Dumper(\%data);