[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