Bonjour

Je suis sûr que je ne suis pas le 1er à tomber sur ce cas, mais comme je ne suis pas un pro, je prefere demander directement à ceux qui savent...
Voici mon souci.

J'ai le code XML suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<Historic>
  <Done>
    <Build>    
      <Machine>
        <Name>MTP-QA19</Name>        
      </Machine>
      <Machine>
        <Name>MTP-QA20</Name>
      </Machine> 
    </Build>
  </Done>
</Historic>
Je veux récupérer toutes les valeurs "Name". Voici donc mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
my $xml = new XML::Simple;  
my $data = $xml->XMLin("test.xml");
 
my $machine = $data->{Done}->{Build}->{Machine};
 
foreach my $m(@{$machine})
{
  print $m->{Name}."\n";
}
Ce code fonctionne... mais seulement s'il y'a au moins 2 noeuds <Machine> dans mon xml.
S'il n'y en a qu'un, j'ai l'erreur "logique" suivante:
Not an ARRAY reference at test.pl line 8.

(line 8 = foreach)

Quel code selon vous fonctionnerait dans tous les cas ?

Merci d'avance pour votre aide !
K.