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;
Partager