[Cascavel-pm] Eliminando superfulos em scripts XML

Luis Campos de Carvalho lechamps em terra.com.br
Terça Junho 10 10:10:03 CDT 2003


Flávio POP wrote:
> Pessoal,
> 
>     estou precisando de um script que elimina-se carcateres superfulos em
> scripts XML,
> como exemplo:
> 
> <root>
>     <node>
>         This is a text
>     </node>
>     <node>
>         <subnode>
>             This is another text
>         <subnode>
>         <rem>
>             This is a remark
>         </rem>
>     </node>
> </root>,
> 
>     no script acima temos TABs e ESCAPEs, como transformar em:
> 
> <root><node>This is a text</node><node><subnode>This is another
> text<subnode><rem>This is a remark</rem></node></root>

   Com expressões regulares.
   Bom, vamos começar assim:

   #!/usr/bin/perl -w
   use strict;

   local $/=undef;

   open INPUT, 'nome_do_xml.xml'
     or die "$!\n";
   $file = <INPUT>;
   close INPUT;

   # remove todos os "inuteis" do começo de cada linha.
   $file =~ s,^\s+,,gomo;
   # remove todos os "inuteis" do final de cada linha.
   $file =~ s,\s+$,,gomo;
   # remove todos os "inuteis" entre dois tags.
   $file =~ s,>\s+<,><,gomo;

   print $file;
   __END__

   Eu não testei essa coisa, mas não tem mistério.
   Ele vai cuspira seu arquivo reformatado para a saída padrão, tá?
   Eu não sei como tratar o caso de ter não-espaços entre '>' e '<'. Até 
onde eu entendo de XML, não podemos mexer aí dentro... eu estou 
abusando, já, quando tiro os espaços de antes e depois das linhas...

   Deve ter um modulo que trate de XML para você olhar... procure no 
search.cpan.org, por favor...

   Veja se isso ajuda, e me envia feedback, tá?
   []'z!

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
   Luis Campos de Carvalho
   Computer Scientist,
   Unix Sys Admin & Certified Oracle DBA
   http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=




Mais detalhes sobre a lista de discussão Cascavel-pm