[Madrid-pm] Parsear un XML

Francisco Rivas franciscojrivash en gmail.com
Jue Abr 28 03:11:00 PDT 2011


Hola de nuevo, he hecho el script con XML::Twig y solo puedo decir que es
muuuuyyy bueno!. Excelente!, Justo lo que necesitaba. Por otro lado me esta
sucediendo algo que quiza se trata de algo que estoy haciendo mal, quisiera
hacer las modificaciones al archivo y escribirlas en el mismo archivo una
vez que termine, entonces he visto la funcion parsefile_inplace pero si
parseo el archivo de esa manera al final el archivo queda en blanco, estoy
haciendo algo mal? (seguro :P).

Este es el codigo que he escrito hasta el momento
http://pastebin.com/mzN7AxQH en este caso no estoy usando parsefile_input y
se que hay cosas que se pueden hacer de manera distinta y quiza mas corta
pero como estoy aprendiendo a usar el modulo lo he hecho asi.

Para resumir un poco la duda : si utilizo parsefile_inplace cuando termino
el parseo el archivo queda en blanco.

Muchas gracias a todos de nuevo por los comentarios y por orientarme, muy
buen dia :D

2011/4/27 Francisco Rivas <franciscojrivash at gmail.com>

> Justo en esto estoy! :D
>
> 2011/4/27 Javier Camuñas <kamunas at gmail.com>
>
>> - Si es grande el xml a parsear XML::Simple te dejará prácticamente sin
>> RAM.
>> - Usaría ForceArray en caso de Simple
>> - Prueba XML::Twig
>>
>> un saludo
>>
>>  2011/4/27 Francisco Rivas <franciscojrivash at gmail.com>
>>
>>>  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
>>> Madrid-pm at pm.org
>>> http://mail.pm.org/mailman/listinfo/madrid-pm
>>>
>>
>>
>> _______________________________________________
>> Madrid-pm mailing list
>> Madrid-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/madrid-pm
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/madrid-pm/attachments/20110428/e930f863/attachment.html>


Más información sobre la lista de distribución Madrid-pm