Para modificar un XML al vuelo, a lo mejor te interesa más utilizar XML::Twig o 
directamente con una transformación XSLT, sin usar Perl.

A mi XML::Simple no me gusta nada, creo que se pasa tratando de simplificar las 
cosas y siempre me decanto por XML::LibXML aunque es cierto que resulta más 
laborioso (pero lo compensa con el soporte para RelaxNG).

- Salva





________________________________
From: Francisco Rivas <[email protected]>
To: Lista de correo de Madrid Perl Mongers <[email protected]>
Sent: Wed, April 27, 2011 6:39:16 PM
Subject: [Madrid-pm] Parsear un XML

Hola *,

Quiero hacer un script para modificar un XML y he encontrado varios modulos en 
el CPAN que lo hacen XML::LibXML y XML::Simple por ejemplo. El detalle es que 
la 
forma del XML que tengo es biiiienn extrana :P, puesto que tiene varios 
niveles. 
Entonces lo que quiero hacer con el XML es quitarle algunos elementos y 
modificar otros. Estoy utilizando por el momento XML::Simple, soy bastante 
novato en Perl y por eso recurro a la lista.

#!/usr/bin/perl

use strict;
use warnings;

use XML::Simple;
use Data::Dumper;
$Data::Dumper::Indent = 3;

my $fh = 'BookatableWid_asset.xml';
my $tree = XMLin($fh);
delete $tree->{protocolVersion};
print Dumper($tree);

En esto que llevo hecho, que es una tonteria al final, solo elimino una de las 
'keys' que me interesa.

El detalle esta en que luego hay hash de hashes de hashes dentro del XML. Miren 
http://pastebin.com/muT2zH9E

Entonces necesito iterar en esa estructura para buscar las 'keys' que quiero 
modificar o eliminar incluso. 


Algunas recomendacion?. usar otro modulo?, utilizar ForceArray o ForceContent, 
GroupTags o algo asi?

Gracias de antemano. Muy buena tarde. :D
_______________________________________________
Madrid-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/madrid-pm

Responder a