Bonjour,
je continue dans l'apprentissage du parsage en perl et je me demande maintenant comment récupérer les données une fois parsées. J'y arrivais au début avec un fichier xml très simple. Il l'est toujours mais j'ai rajouté des informations (c'est juste un exemple!). Voici le fichier xml que je m'entraine à parser:
Maintenant voici ce que je fais:
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 <?xml version='1.0'?> <entreprise> <employees> <employee> <name>John Doe</name> <age>43</age> <sex>M</sex> <department>Exploitation</department> </employee> <employee> <name>Eric Johns</name> <age>36</age> <sex>M</sex> <department>Sale department</department> </employee> </employees> <departments> <department> <name>Exploitation</name> <manager>John Doe</manager> <floor>1</floor> </department> <department> <name>Sale department</name> <manager>Eric Johns</manager> <floor>2</floor> </department> </departments> </entreprise>
Apparemment ce n'est pas la bonne méthode lol!
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 /usr/local/bin/perl # utiliser le module use XML::Simple; use Data::Dumper; use strict; # créer un objet my($xml)=new XML::Simple; # lire le fichier XML my($data)=$xml->XMLin("./data.xml"); # accéder aux données XML #print Dumper ($data); print (@{$data->{employees}->{employee}->[0]->{name}});
Voici l'erreur qui m'est retournée lorsque j'essaye d'éxécuter ce code:
soit la derniere ligne de mon fichier.Not an array reference [....] line 17
J'en déduit que je n'ai pas la bonne méthode pour accéder à mes données, mais je n'arrive pas à trouver pourquoi.
Avec un xml plus simple, en faisant (@{$data->{employee}}) je pouvais ensuite faire print $e->{name}, "\n"; pour avoir accès à mes données.
J'ai donc essayé en rajoutant le "chemin" vers ma donnée mais ça ne marche pas.
Est-ce que quelqu'un pourrait me donner un coup de pouce svp? Si vous avez de bons sites pour nullos ça m'intéresse aussi!![]()
Merci!
Partager