Uniendo los dos programas se obtiene lo que deseas:
Using perl Syntax Highlighting
#!/usr/bin/perl -w
use XML
::CSV;
use XML
::Simple;
$csvo = XML
::CSV->new();
$csvo->{column_headings
} = [ qw(Name Value Vista
) ];
$csvo->declare_xml({ version
=> 1.0, standalone
=> 'yes' });
$csvo->parse_doc("A.csv");
$filas = $csvo->{column_data
};
$i = 0;
foreach $fila ( @$filas ) {
$xml{Property
}[$i]{Name
} = $fila->[0
];
$xml{Property
}[$i]{Value
} = $fila->[1
];
$xml{Property
}[$i]{Vista
} = $fila->[2
];
$i++;
}
print XMLout
(\%xml, RootName
=>'Properties', xmldecl
=> '<?xml version="1.0">');Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
sale:
Using xml Syntax Highlighting
<?xml version="1.0">
<Properties>
<Property Name="area1" Value="valor1" Vista="comun1" />
<Property Name="area2" Value="valor2" Vista="comun2" />
<Property Name="area3" Value="valor3" Vista="comun3" />
<Property Name="area4" Value="valor4" Vista="comun4" />
</Properties>Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
El procedimiento es leer los datos leídos desde $csvo->{column_data}, que devuelve una referencia a un array donde están todos los datos. Luego hacemos un bucle por todas las @$filas de esos datos. Por cada $fila, guardamos esos datos de la misma manera que en el primer ejemplo.