Bonjour,

J'ai un souci dans mon code, je n'arrive pas à intégrer de nouvelles balises, incluant de nouvelles informations, dans un code XML déjà généré.


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
my $xml3 = new XML::Simple (NoAttr=>1, RootName=>'CLIENT');
my $xml4 = new XML::Simple (NoAttr=>1, RootName=>'PRODUIT');
 
 
my %cli = ('Numero'=>'1', 'Nom client'=>'Toto', 'Livraison'=>'rapide');
        $data = $xml3->XMLout(\%cli);
        print Dumper($data);
 
my %pro = ('Nom produit'=>'viande', 'Origine'=>'France');
        $data = $xml4->XMLout(\%pro);
        print Dumper($data);
 
 
 
Résultat :
$VAR1 = '<CLIENT>
  <Numero>1</Numero>
  <Livraison>rapide</Livraison>
  <Nom client>Toto</Nom client>
</CLIENT>
';
$VAR1 = '<PRODUIT>
  <Origine>France</Origine>
  <Nom produit>viande</Nom produit>
</PRODUIT>

J'aimerais obtenir un résultat de ce type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
$VAR1 = '<CLIENT>
  <Numero>1</Numero>
  <Livraison>rapide</Livraison>
  <Nom client>Toto</Nom client>
  <PRODUIT>
    <Origine>France</Origine>
    <Nom produit>viande</Nom produit>
  </PRODUIT>
</CLIENT>

J'ai essayé ça, mais ça ne marche pas des masses :

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
%cli = ('Numero'=>'1', 'Nom client'=>'Toto', 'Livraison'=>'rapide', 'Produit'=>$data2);
        $data = $xml3->XMLout(\%cli);
        print Dumper($data);
 
Résultat : 
$VAR1 = '<CLIENT>
  <Numero>1</Numero>
  <Livraison>rapide</Livraison>
  <Nom client>Toto</Nom client>
  <Produit>&lt;CLIENT&gt;
  &lt;Numero&gt;1&lt;/Numero&gt;
  &lt;Livraison&gt;rapide&lt;/Livraison&gt;
  &lt;Nom client&gt;Toto&lt;/Nom client&gt;
  &lt;produit&gt;1/8&lt;/produit&gt;
&lt;/CLIENT&gt;
</Produit>
</CLIENT>
';

Comment puis-je procéder ?
J'aimerais également pouvoir insérer plusieurs produits pour un même client, tout en gardant un code cohérent au niveau des balises.

Merci beaucoup pour votre aide.