xml2multi.pl
#!/usr/bin/perl use locale; #caracteres accentues #perl ext2html-ext2xml.pl (pour obtenir des -3-balise.xml et des -c3-balise.xml) #perl xml2multi.pl #On obtient: 3 fichiers identiques avec le lien vers 3 feuilles de style différentes print "Bienvenu(e) au programme qui permet de \n faire des copies de vos fichiers .xml sous \n d'autres noms. \n"; print "Tapez a si il s'agit exactement des fichiers \n livres-un-3-balise.xml, livres-un-c3-balise.xml, \n culture-un-3-balise.xml et livres-un-c3-balise.xml \n"; print "Tapez t si vous voulez transformer des \n -3-balise.xml en -3-NA.xml, -3-NN.xml et -3-NPN.xml \n"; print "Tapez c si vous voulez transformer des \n -c3-balise.xml en -c3-NA.xml, -c3-NN.xml et -c3-NPN.xml \n"; print "Dans les trois premiers cas, on va aussi \n rajouter automatiquement l'adresse style-3-patron de la feuille de style correspondante. \n"; print "Tapez x si vous voulez transformer un .xml \n en trois -patron.xml et \n rajouter les \n feuilles de style nommees style-3-patron.xsl \n"; print "Sinon tapez q \n"; my $rep=<STDIN>; chomp($rep); ################################################## if ($rep=~/a/) {system "#!/bin/bash cp livres-un-3-balise.xml \.\/livres-un-3-NA.xml; cp livres-un-3-balise.xml \.\/livres-un-3-NN.xml; cp livres-un-3-balise.xml \.\/livres-un-3-NPN.xml; cp culture-un-3-balise.xml \.\/culture-un-3-NA.xml; cp culture-un-3-balise.xml \.\/culture-un-3-NN.xml; cp culture-un-3-balise.xml \.\/culture-un-3-NPN.xml; cp livres-un-c3-balise.xml \.\/livres-un-c3-NA.xml; cp livres-un-c3-balise.xml \.\/livres-un-c3-NN.xml; cp livres-un-c3-balise.xml \.\/livres-un-c3-NPN.xml; cp culture-un-c3-balise.xml \.\/culture-un-c3-NA.xml; cp culture-un-c3-balise.xml \.\/culture-un-c3-NN.xml; cp culture-un-c3-balise.xml \.\/culture-un-c3-NPN.xml;
echo \"Attendez s'il vous plait...\";";
my $file01="livres-un-3-NA\.xml"; my $file02="livres-un-3-NN\.xml"; my $file03="livres-un-3-NPN\.xml"; my $file04="culture-un-3-NA\.xml"; my $file05="culture-un-3-NN\.xml"; my $file06="culture-un-3-NPN\.xml"; my $file07="livres-un-c3-NA\.xml"; my $file08="livres-un-c3-NN\.xml"; my $file09="livres-un-c3-NPN\.xml"; my $file10="culture-un-c3-NA\.xml"; my $file11="culture-un-c3-NN\.xml"; my $file12="culture-un-c3-NPN\.xml"; # open(FILEIN01, $file01); open(FILEOUT01, ">$file01.NA"); my $DUMPFULL01=""; while(my $recup01=<FILEIN01>) { $recup01=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-ADJ\.xsl\"\?>\n/g; $DUMPFULL01.=$recup01; }; print FILEOUT01 $DUMPFULL01; close(FILEIN01); close(FILEOUT01); # open(FILEIN04, $file04); open(FILEOUT04, ">$file04.NA"); my $DUMPFULL04=""; while(my $recup04=<FILEIN04>) { $recup04=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-ADJ\.xsl\"\?>\n/g; $DUMPFULL04.=$recup04; }; print FILEOUT04 $DUMPFULL04; close(FILEIN04); close(FILEOUT04); # open(FILEIN07, $file07); open(FILEOUT07, ">$file07.NA"); my $DUMPFULL07=""; while(my $recup07=<FILEIN07>) { $recup07=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-ADJ\.xsl\"\?>\n/g; $DUMPFULL07.=$recup07; }; print FILEOUT07 $DUMPFULL07; close(FILEIN07); close(FILEOUT07); # open(FILEIN10, $file10); open(FILEOUT10, ">$file10.NA"); my $DUMPFULL10=""; while(my $recup10=<FILEIN10>) { $recup10=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-ADJ\.xsl\"\?>\n/g; $DUMPFULL10.=$recup10; }; print FILEOUT10 $DUMPFULL10; close(FILEIN10); close(FILEOUT10); # Il écrase le fichier xml system "#!/bin/bash rename $file01.NA $file01 *\.xml\.NA; rename $file04.NA $file04 *\.xml\.NA; rename $file07.NA $file07 *\.xml\.NA; rename $file10.NA $file10 *\.xml\.NA;"; ### open(FILEIN02, $file02); open(FILEOUT02, ">$file02.NN"); my $DUMPFULL02=""; while(my $recup02=<FILEIN02>) { $recup02=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-NOM.xsl\"\?>\n/g; $DUMPFULL02.=$recup02; }; print FILEOUT02 $DUMPFULL02; close(FILEIN02); # open(FILEIN05, $file05); open(FILEOUT05, ">$file05.NN"); my $DUMPFULL05=""; while(my $recup05=<FILEIN05>) { $recup05=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-NOM.xsl\"\?>\n/g; $DUMPFULL05.=$recup05; }; print FILEOUT05 $DUMPFULL05; close(FILEIN05); # open(FILEIN08, $file08); open(FILEOUT08, ">$file08.NN"); my $DUMPFULL08=""; while(my $recup08=<FILEIN08>) { $recup08=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-NOM.xsl\"\?>\n/g; $DUMPFULL08.=$recup08; }; print FILEOUT08 $DUMPFULL08; close(FILEIN08); # open(FILEIN11, $file11); open(FILEOUT11, ">$file11.NN"); my $DUMPFULL11=""; while(my $recup11=<FILEIN11>) { $recup11=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-NOM.xsl\"\?>\n/g; $DUMPFULL11.=$recup11; }; print FILEOUT11 $DUMPFULL11; close(FILEIN11); # Il écrase le fichier xml system "#!/bin/bash rename $file02.NN $file02 *\.xml\.NN; rename $file05.NN $file05 *\.xml\.NN; rename $file08.NN $file08 *\.xml\.NN; rename $file11.NN $file11 *\.xml\.NN; "; #### open(FILEIN03, $file03); open(FILEOUT03, ">$file03.NPN"); my $DUMPFULL03=""; while(my $recup03=<FILEIN03>) { $recup03=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-PREP-NOM\.xsl\"\?>\n/g; $DUMPFULL03.=$recup03; }; print FILEOUT03 $DUMPFULL03; close(FILEIN03); close(FILEOUT03); # open(FILEIN06, $file06); open(FILEOUT06, ">$file06.NPN"); my $DUMPFULL06=""; while(my $recup06=<FILEIN06>) { $recup06=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-PREP-NOM\.xsl\"\?>\n/g; $DUMPFULL06.=$recup06; }; print FILEOUT06 $DUMPFULL06; close(FILEIN06); close(FILEOUT06); # open(FILEIN09, $file09); open(FILEOUT09, ">$file09.NPN"); my $DUMPFULL09=""; while(my $recup09=<FILEIN09>) { $recup09=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-PREP-NOM\.xsl\"\?>\n/g; $DUMPFULL09.=$recup09; }; print FILEOUT09 $DUMPFULL09; close(FILEIN09); close(FILEOUT09); # open(FILEIN12, $file12); open(FILEOUT12, ">$file12.NPN"); my $DUMPFULL12=""; while(my $recup12=<FILEIN12>) { $recup12=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-PREP-NOM\.xsl\"\?>\n/g; $DUMPFULL12.=$recup12; }; print FILEOUT12 $DUMPFULL12; close(FILEIN12); close(FILEOUT12); # Il écrase le fichier xml system "#!/bin/bash rename $file03.NPN $file03 *\.xml\.NPN; rename $file06.NPN $file06 *\.xml\.NPN; rename $file09.NPN $file09 *\.xml\.NPN; rename $file12.NPN $file12 *\.xml\.NPN; "; # system "#!/bin/bash ls > tous-vos-fichiers\.txt; grep \"NA\.xml\" tous-vos-fichiers\.txt > nom-de-fichier\.txt; grep \"NN\.xml\" tous-vos-fichiers\.txt >> nom-de-fichier\.txt; grep \"NPN\.xml\" tous-vos-fichiers\.txt >> nom-de-fichier\.txt; echo \"Termine\";"; print "\nLes nouveaux fichiers créés se trouvent dans cette liste: \n"; system "#!/bin/bash cat nom-de-fichier\.txt;"; #Correction de l'erreur pour le a: 1 erreur subsiste interne à la compilation de perl ou de cygwin avec culture-un-3-NN.xml par exemple il ne reconnaît pas le LF après <document> alors qu'il est là, la plupart des tentatives de modification du fichier ne marchent pas, et donc il y a des erreurs dans la constitution du fichier et donc rien n'est remplace. }
################################################## elsif (($rep=~/t/)||($rep=~/c/)) { print "\n Nom du fichier de travail, de preference un -3-balise.xml \n ou un -c3-balise.xml au format UNIX: \n"; my $file=<STDIN>; chomp($file); system "#!/bin/bash cp $file \.\/$file.01; cp $file \.\/$file.02; cp $file \.\/$file.03; echo \"Attendez s'il vous plait...\";"; $file1 = $file.".01"; open(FILEIN01, $file1); open(FILEOUT01, ">$file1.NA"); my $DUMPFULL01=""; while(my $recup01=<FILEIN01>) { $recup01=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-ADJ\.xsl\"\?>\n/g; $DUMPFULL01.=$recup01; }; print FILEOUT01 $DUMPFULL01; close(FILEIN01); close(FILEOUT01); system "#!/bin/bash rename balise\.xml\.01\.NA NA\.xml *\.xml\.01\.NA;"; # $file2 = $file.".02"; open(FILEIN02, $file2); open(FILEOUT02, ">$file2.NN"); my $DUMPFULL02=""; while(my $recup02=<FILEIN02>) { $recup02=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-NOM\.xsl\"\?>\n/g; $DUMPFULL02.=$recup02; }; print FILEOUT02 $DUMPFULL02; close(FILEIN02); close(FILEOUT02); system "#!/bin/bash rename balise\.xml\.02\.NN NN\.xml *\.xml\.02\.NN; "; # $file3 = $file.".03"; open(FILEIN03, $file3); open(FILEOUT03, ">$file3.NPN"); my $DUMPFULL03=""; while(my $recup03=<FILEIN03>) { $recup03=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-NOM-PREP-NOM\.xsl\"\?>\n/g; $DUMPFULL03.=$recup03; }; print FILEOUT03 $DUMPFULL03; close(FILEIN03); close(FILEOUT03); system "#!/bin/bash rename balise\.xml\.03\.NPN NPN\.xml *\.xml\.03\.NPN;"; # system "#!/bin/bash rm *balise.xml.01; rm *balise.xml.02; rm *balise.xml.03;"; # system "#!/bin/bash echo \"Termine.\"; ls > tous-vos-fichiers\.txt; grep \"NA\.xml\" tous-vos-fichiers\.txt > nom-de-fichier\.txt; grep \"NN\.xml\" tous-vos-fichiers\.txt >> nom-de-fichier\.txt; grep \"NPN\.xml\" tous-vos-fichiers\.txt >> nom-de-fichier\.txt;"; print "\nLes nouveaux fichiers créés se trouvent dans cette liste: \n"; system "#!/bin/bash cat nom-de-fichier\.txt;"; } ################################################## elsif ($rep=~/x/) { system "#!/bin/bash echo \"Termine.\"; ls > tous-vos-fichiers\.txt; grep \"\.xml\" tous-vos-fichiers\.txt >> nom-de-fichier\.txt;"; print "\nVos fichiers xml d'origine sont les suivants: \n"; system "#!/bin/bash cat nom-de-fichier\.txt;"; print "\n Observez vos fichiers xml, attention si vous avez des fichiers \n dont le nom contient au debut, au milieu ou a la fin xml.01 ou xml.02 ou xml.03 \n tapez CTRL C pour quitter car ce type de fichier sera traite comme \n une copie temporaire de votre fichier en entree et sera efface."; print "\n Nom du fichier de travail, de preference un .xml au format UNIX: \n"; my $file=<STDIN>; chomp($file); print "\n Nom du premier patron: \n"; my $p1=<STDIN>; chomp($p1); print "\n Nom du deuxieme patron: \n"; my $p2=<STDIN>; chomp($p2); print "\n Nom du troisieme patron: \n"; my $p3=<STDIN>; chomp($p3); system "#!/bin/bash cp $file \.\/$file.01; cp $file \.\/$file.02; cp $file \.\/$file.03; echo \"Attendez s'il vous plait...\";"; $file1 = $file.".01"; open(FILEIN01, $file1); open(FILEOUT01, ">$file1.$p1"); my $DUMPFULL01=""; while(my $recup01=<FILEIN01>) { $recup01=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-$p1\.xsl\"\?>\n/g; $DUMPFULL01.=$recup01; }; print FILEOUT01 $DUMPFULL01; close(FILEIN01); close(FILEOUT01); system "#!/bin/bash rename \.xml\.01\.$p1 $p1\.xml *\.xml\.01\.$p1; "; # $file2 = $file.".02"; open(FILEIN02, $file2); open(FILEOUT02, ">$file2.$p2"); my $DUMPFULL02=""; while(my $recup02=<FILEIN02>) { $recup02=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-$p2\.xsl\"\?>\n/g; $DUMPFULL02.=$recup02; }; print FILEOUT02 $DUMPFULL02; close(FILEIN02); close(FILEOUT02); system "#!/bin/bash rename \.xml\.02\.$p2 $p2\.xml *\.xml\.02\.$p2; "; # $file3 = $file.".03"; open(FILEIN03, $file3); open(FILEOUT03, ">$file3.$p3"); my $DUMPFULL03=""; while(my $recup03=<FILEIN03>) { $recup03=~s/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n/<\?xml version=\"1\.0\" encoding=\"iso-8859-1\" standalone=\"no\"\?>\n<\?xml-stylesheet type=\"text\/xsl\" href=\"style-3-$p3\.xsl\"\?>\n/g; $DUMPFULL03.=$recup03; }; print FILEOUT03 $DUMPFULL03; close(FILEIN03); close(FILEOUT03); system "#!/bin/bash rename \.xml\.03\.$p3 $p3\.xml *\.xml\.03\.$p3; "; # system "#!/bin/bash rm *\.xml.01; rm *\.xml.02; rm *\.xml.03;"; # system "#!/bin/bash echo \"Termine.\"; ls > tous-vos-fichiers\.txt; grep \"$p1\.xml\" tous-vos-fichiers\.txt > nom-de-fichier\.txt; grep \"$p2\.xml\" tous-vos-fichiers\.txt >> nom-de-fichier\.txt; grep \"$p3\.xml\" tous-vos-fichiers\.txt >> nom-de-fichier\.txt;"; print "\nLes nouveaux fichiers créés se trouvent dans cette liste: \n"; system "#!/bin/bash cat nom-de-fichier\.txt;"; } #### else { print "\n Annule.\n"; };