#!/usr/bin/perl -w # file KLEIDER/web/src/sitestyle/rmxmlns.pl # Entfernt nicht benutzte XML-Namensraumknoten # 2015-10-06 Herbert Schiemann # GPL Version 2 oder neuer package main; use English '-no_match_vars'; use utf8 ; use Herbaer::Readargs ; binmode (STDIN, ":utf8") ; binmode (STDOUT, ":utf8") ; binmode (STDERR, ":utf8") ; # Hash der Kommandozeilen-Argumente my $args = { "[cnt]verbose" => 0, }; my $verbose ; # gibt die Version nach STDOUT aus sub version { print <<'VERSION' ; rmxmlns.pl v20151006 Entfernt nicht benutzte XML-Namensraumknoten 2015 Herbert Schiemann VERSION } $args -> {"[sr]version"} = sub { version (); exit 0; }; $args -> {"[sr]help"} = sub { version (); print_message_with_values (<<'HELP', $args); Usage cat IN > rmxmlns.pl [Optionen] > OUT --[no_]verbose Umfang der Meldungen nach STDERR ${[cnt]verbose} HELP exit 0; }; read_args ($args); $verbose = $args -> {"[cnt]verbose"}; print STDERR "START rmxmlns.pl\n" if $verbose; my $prfhsh = {}; # Hash der Präfixe my $data; { print STDERR "READ\n" if $verbose > 1; local $INPUT_RECORD_SEPARATOR = undef; $data = ; print STDERR "READ DONE\n" if $verbose > 1; } while ( $data =~ /\sxmlns:([a-zA-Z0-9]+)\s*=\s*"[^"]+"/g ) { ++$prfhsh -> {$1}; } my $prf; # ein Präfix for $prf (keys %$prfhsh) { print STDERR "TEST $prf\n" if $verbose > 1; if ( $data !~ /\b${prf}:[a-zA-Z0-9]/ ) { print STDERR "RM $prf\n" if $verbose > 1; $data =~ s/\s+xmlns:${prf}\s*=\s*"[^"]+"//g ; } } print STDERR "WRITE\n" if $verbose > 1; print STDOUT $data; print STDERR "WRITE DONE\n" if $verbose > 1; # end of file KLEIDER/web/src/sitestyle/rmxmlns.pl