Tengo problemillas al leer el siguiente fichero XML:
Using xml Syntax Highlighting
$VAR1 = {
'Type' => 'Projection',
'Filters' => {
'In' => [
{
'StatField' => {
'Field' => 'Field1',
'Family' => 'MDW'
},
'FilterList' => 'VAL1 VAL2 VAL3 VAL4'
},
{
'StatField' => {
'Field' => 'Field2',
'Family' => 'MDW'
},
'FilterList' => 'YOU'
},
{
'StatField' => {
'Field' => 'Field3',
'Family' => 'MDW'
},
'FilterList' => 'GY'
}
]
},
...
'Type' => 'Projection',
'Filters' => {
'In' => [
{
'StatField' => {
'Field' => 'Field1',
'Family' => 'MDW'
},
'FilterList' => 'VAL1 VAL2 VAL3 VAL4'
},
{
'StatField' => {
'Field' => 'Field2',
'Family' => 'MDW'
},
'FilterList' => 'YOU'
},
{
'StatField' => {
'Field' => 'Field3',
'Family' => 'MDW'
},
'FilterList' => 'GY'
}
]
},
...
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Lo que pretendo es obtener todos los valores que aparecen con la clave 'FilterList' y almacenarlos en un array @filterList.
Usando el modulo XML::Simple, llevo hecho lo siguiente:
Using perl Syntax Highlighting
sub obtainFiltersIn {
my $filename = $_[0];
my @filters = ();
my $filter;
my $ref = XMLin($filename);
if ( defined($ref->{Filters}->{In}) ) {
my @filtering = $ref->{Filters}->{In};
foreach my $filterEntry (@filtering) {
my @filterList = split (/ /,$filterEntry{FilterList});
foreach $filter (@filterList) {
push @filters, $filter;
}
}
}
return @filters;
}
my $filename = $_[0];
my @filters = ();
my $filter;
my $ref = XMLin($filename);
if ( defined($ref->{Filters}->{In}) ) {
my @filtering = $ref->{Filters}->{In};
foreach my $filterEntry (@filtering) {
my @filterList = split (/ /,$filterEntry{FilterList});
foreach $filter (@filterList) {
push @filters, $filter;
}
}
}
return @filters;
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
El caso es que no me parece funcionar y estoy hecho un autentico lío... :-S
¿Alguien me puede echar una mano?
¡Muchas gracias por adelantado!
Felipe