Bonjour,

je souhaite mettre a jour un fichier xml en remplissant certaines balises mais le soucis c'est que je ne n'obtiens pas ce que j'aimerai.
Voici ce que j'ai écrit :
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
#!/usr/bin/perl
 
# use module
use strict;
use XML::DOM;
use Data::Dumper;
 
# parsing du fichier toto.xml
my $parser = new XML::DOM::Parser;
my $doc = $parser->parsefile("toto.xml");
if (!defined($parser) || !defined($doc)) 
{
	undef($parser) if (defined($parser));
	next;
}
 
#mise a jour du fichier xml.
my $base_nodes = $doc->getElementsByTagName("Test");
if (defined($base_nodes) && $base_nodes->getLength > 0 && defined(my $base_node = $base_nodes->item(0))) 
{
	$base_node->setAttribute("toto", "undeuxtrois");
	$base_node->setAttribute("titi", 55);
	$base_node->setAttribute("tata", "cinqsixsept");
	$base_node->setAttribute("yoyo", 44);
}
 
$doc->printToFile("out.xml");
Mon fichier toto.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<Test>
	<donnees>
		<toto></toto>
		<titi></titi>
		<autre>
			<tata></tata>
			<yoyo></yoyo>
		</autre>
	</donnees>
</Test>
Le fichier out.xml de sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<Test toto="undeuxtrois" titi="55" tata="cinqsixsept" yoyo="44">
	<donnees>
		<toto/>
		<titi/>
		<autre>
			<tata/>
			<yoyo/>
		</autre>
	</donnees>
</Test>
Ce que j'aimerai c'est que les données soient mises entre les balises c'est a dire comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<Test>
	<donnees>
		<toto>undeuxtrois</toto>
		<titi>55</titi>
		<autre>
			<tata>cinqsixsept</tata>
			<yoyo>44</yoyo>
		</autre>
	</donnees>
</Test>
Merci