XML:Twig : Supprimer ou modifier des attributs d'un fichier xml
Bonjour,
je cherche désespérément à modifier ou supprimer des attributs d'un fichier xml mais je n'y arrive pas. Ce qu'il me faudrait en fait, c'est à la lecture fichier aller modifier (ou supprimer) certains attributs d'une balise afin d'écrire le fichier résultat. J'arrive à écrire mon fichier en sortie mais les attributs ne sont pas modifiés. Pouvez-vous m'aider svp?
Ci-dessous mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
#!/usr/bin/perl
use Carp;
use warnings;
use XML::Twig;
#use XML::LibXML;
use File::Temp qw(tempfile tempdir);
use Getopt::Long;
my ($repertoire, $fichier) = ();
GetOptions( 'fichier|i=s' => \$fichier, 'repertoire|d=s' => \$repertoire);
if(not defined $fichier or not defined $repertoire) {
die "Fichier source ou répertoire de travail manquant!";
}
creation fichier resultat avec non unique
my($fh, $filename) = tempfile( "FILEOUT"."_". 'XXXXXXXX', SUFFIX => '.xml', DIR => $repertoire );
binmode $fh, ':encoding(UTF-8)';#UTF8 format
# Lecture
my $twig = XML::Twig->new( pretty_print => 'indented' );
$twig->parsefile($fichier);
my $twig_SHIPMENT_EXPECTED_INFORMATION = $twig->root->first_child('ENVELOPPE');
removeAttribute($twig_ENVELOPPE, "xmlns="http://www.secondsiteweb.com/WMSXMLMessages"");
=head1
Je n'arrive pas à supprimer ou modifier un attribut en particulier dans mon fichier xml
quelqu'un pourrait il m'aider?
exemple de fichier xml :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ENVELOPPE xmlns:premier="http://www.siteweb/XMLDataTypes" xmlns="http://www.secondsiteweb.com/WMSXMLMessages" xmlns:troisieme="http://www.troisiemesiteweb.com/GateDataTypes" xmlns:quatrieme="http://www.w3.org/2001/XMLSchema-instance">
<SequenceId>1</SequenceId>
<DateDuJour>25</DateDuJour>
</ENVELOPPE>
J'aimerai avoir un fichier comme suit :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ENVELOPPE xmlns:premier="http://www.siteweb/XMLDataTypes" xmlns:ajout="http://www.secondsiteweb.com/WMSXMLMessages" xmlns:troisieme="http://www.troisiemesiteweb.com/GateDataTypes" xmlns:quatrieme="http://www.w3.org/2001/XMLSchema-instance">
<SequenceId>1</SequenceId>
<DateDuJour>25</DateDuJour>
</ENVELOPPE>
ou supprimer tout simplement le : xmlns="http://www.secondsiteweb.com/WMSXMLMessages"
=cut
$twig->print($fh);
close $fh; |