Bonjour,
Je souhaite récupérer des données via une API XML d'un site de jeux de sociétés, Board Game Geek. C'est la première fois que j'utilise une API, je découvre un nouvel univers qui semble vaste, très vaste. Actuellement, mon objectif est de récupérer des informations sur des jeux de sociétés.

J'ai réussi à me connecter à l'API via ce code et récupérer l'une des données qui m'intéressait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$fichier = 'https://boardgamegeek.com/xmlapi/boardgame/'.$bgg.'?stats=1';
$contenu = simplexml_load_file($fichier);
echo $contenu->boardgame->statistics->ratings->averageweight;
Mon problème vient du fait que je souhaite récupérer des données et mes différentes tentatives pour y arriver, ont toutes échoué... C'est assez rageant...

Je voudrais récupérer cette donnée : [statistics] => SimpleXMLElement Object [@attributes] => Array [ratings] => SimpleXMLElement Object [ranks] => SimpleXMLElement Object [rank] => Array [0] => SimpleXMLElement Object [@attributes] => Array [value] => 4571

J'ai tenté ce code mais ça ne fonctionne pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
echo $contenu->boardgame->statistics->ratings->ranks->rank[0]->value;
Comment puis-je faire pour récupérer la valeur de boardgame->statistics->ratings->ranks->rank[0]->value ? (ligne 45 du code ci-dessous)

Voici une partie de la structure initiale de la donnée XML :
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [termsofuse] => https://boardgamegeek.com/xmlapi/termsofuse
        )
 
    [boardgame] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [objectid] => 31745
                )
 
            [yearpublished] => 2007
            [minplayers] => 2
            [maxplayers] => 5
            [playingtime] => 60
            [minplaytime] => 60
            [maxplaytime] => 60
            [statistics] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [page] => 1
                        )
 
                    [ratings] => SimpleXMLElement Object
                        (
                            [usersrated] => 923
                            [average] => 6.32591
                            [bayesaverage] => 5.76275
                            [ranks] => SimpleXMLElement Object
                                (
                                    [rank] => Array
                                        (
                                            [0] => SimpleXMLElement Object
                                                (
                                                    [@attributes] => Array
                                                        (
                                                            [type] => subtype
                                                            [id] => 1
                                                            [name] => boardgame
                                                            [friendlyname] => Board Game Rank
                                                            [value] => 4571
                                                            [bayesaverage] => 5.76275
                                                        )
 
                                                )
 
                                            [1] => SimpleXMLElement Object
                                                (
                                                    [@attributes] => Array
                                                        (
                                                            [type] => family
                                                            [id] => 5497
                                                            [name] => strategygames
                                                            [friendlyname] => Strategy Game Rank
                                                            [value] => 1749
                                                            [bayesaverage] => 5.8274
                                                        )
 
                                                )
 
                                        )
 
                                )
 
                            [stddev] => 1.28206
                            [median] => 0
                            [owned] => 1629
                            [trading] => 115
                            [wanting] => 28
                            [wishing] => 165
                            [numcomments] => 337
                            [numweights] => 102
                            [averageweight] => 2.6667
                        )
J'ai une question subsidiaire. Lorsque je récupère cette donnée : echo $contenu->boardgame->statistics->ratings->averageweight; il s'agit d'un nombre à virgule avec, parfois 4 ou 5 chiffres après la virgule. Or je souhaite qu'une seule virgule. J'ai donc codé un round mais ça ne fonctionne pas, il met directement le chiffre sans virgule et n'accepte pas de mettre le nombre avec un seul chiffre derrière la virgule. Avez-vous une idée pourquoi il n'exécute pas ma commande ?

Voici le code que j'ai utilisé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$valeur = round ($contenu->boardgame->statistics->ratings->averageweight, 1);