[Madrid-pm] Parsear un XML
Salvador Fandino
sfandino en yahoo.com
Mie Abr 27 10:03:37 PDT 2011
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 <franciscojrivash en gmail.com>
To: Lista de correo de Madrid Perl Mongers <madrid-pm en pm.org>
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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.pm.org/pipermail/madrid-pm/attachments/20110427/b2da69c6/attachment.html>
Más información sobre la lista de distribución Madrid-pm