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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;