Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > SimpleXML
SimpleXML Forum d'entraide pour l'extension SimpleXML, qui permet de manipuler des documents XML en PHP (approche DOM).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/09/2007, 18h35   #1
Invité régulier
 
Inscription : novembre 2003
Messages : 29
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 29
Points : 5
Points : 5
Par défaut [SimpleXML] Passer au noeud suivant

Bonsoir,

Je parse un code Xml que m'envoie google maps; et je n'arrive qu'à récuperer le premier élement ( je n'ai pas trouver comment passer au suivant )
Chaque addresse est contenue dans un Placemark, auquel est accosié un Id.
J'arrive jusqu'ici à afficher l'id 1 avec ce code:

Voici mon code :
Code :
1
2
3
4
5
6
 
$xml = new SimpleXMLElement($bada);
 
   // Retrieve the desired XML node
   echo $xml->Response->Placemark->Point->coordinates;
   echo $xml->Response->Placemark->AddressDetails;

Et le fichier XML:

Code XML :
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
<kml>
&#8722;
	<Response>
<name>38410</name>
&#8722;
	<Status>
<code>200</code>
<request>geocode</request>
</Status>
&#8722;
	<Placemark id="p1">
<address>38410 Los Realejos, Spain</address>
&#8722;
	<AddressDetails Accuracy="5">
&#8722;
	<Country>
<CountryNameCode>ES</CountryNameCode>
&#8722;
	<AdministrativeArea>
<AdministrativeAreaName>Islas Canarias</AdministrativeAreaName>
&#8722;
	<SubAdministrativeArea>
<SubAdministrativeAreaName>Santa Cruz de Tenerife</SubAdministrativeAreaName>
&#8722;
	<Locality>
<LocalityName>Los Realejos</LocalityName>
&#8722;
	<PostalCode>
<PostalCodeNumber>38410</PostalCodeNumber>
</PostalCode>
</Locality>
</SubAdministrativeArea>
</AdministrativeArea>
</Country>
</AddressDetails>
&#8722;
	<Point>
<coordinates>-16.589290,28.349758,0</coordinates>
</Point>
</Placemark>
&#8722;
	<Placemark id="p2">
<address>38410 Chamrousse, France</address>
&#8722;
	<AddressDetails Accuracy="5">
&#8722;
	<Country>
<CountryNameCode>FR</CountryNameCode>
&#8722;
	<AdministrativeArea>
<AdministrativeAreaName>Rhône-Alpes</AdministrativeAreaName>
&#8722;
	<SubAdministrativeArea>
<SubAdministrativeAreaName>Isère</SubAdministrativeAreaName>
&#8722;
	<Locality>
<LocalityName>Chamrousse</LocalityName>
&#8722;
	<PostalCode>
<PostalCodeNumber>38410</PostalCodeNumber>
</PostalCode>
</Locality>
</SubAdministrativeArea>
</AdministrativeArea>
</Country>
</AddressDetails>
&#8722;
	<Point>
<coordinates>5.854158,45.139350,0</coordinates>
</Point>
</Placemark>
</Response>
</kml>
About est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 19h03   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Utilisez une boucle foreach :
Code :
1
2
3
4
5
6
7
$xml = new SimpleXMLElement($bada);
foreach ($xml->Response->Placemark as $pm) {
    echo $pm->Point->coordinates;
    echo '<br />';
    echo $pm->AddressDetails;
    echo '<br />';
}
Ou l'"indexation", par exemple pour utiliser directement le deuxième élément Placemark :
Code :
1
2
   echo $xml->Response->Placemark[1]->Point->coordinates;
   echo $xml->Response->Placemark[1]->AddressDetails;
Mais tout ceci est très bien expliqué dans la documentation.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 19h12   #3
Invité régulier
 
Inscription : novembre 2003
Messages : 29
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 29
Points : 5
Points : 5
Milles mercis et encore excusez moi, je débarque sur le php et je ne connaissais pas ce site qui est apparement une référence!
About est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h30.


 
 
 
 
Partenaires

Hébergement Web