Bonjour,
J'essaye de décoder un retour du service OLS que je récupère avec curl
Code XML : 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 <?xml version="1.0" encoding="UTF-8"?> <XLS version="1.2" xmlns="http://www.opengis.net/xls" xmlns:gml="http://www.opengis.net/gml" xmlns:xls="http://www.opengis.net/xls" xmlns:xlsext="http://www.opengis.net/xlsext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://wxs.ign.fr/schemas /olsAll.xsd"> <ResponseHeader/> <Response version="1.2"> <GeocodeResponse> <GeocodeResponseList numberOfGeocodedAddresses="1"> <GeocodedAddress> <gml:Point> <gml:pos>44.837778 -0.579197</gml:pos> </gml:Point> <Address countryCode="StreetAddress"> <StreetAddress> <Street/> </StreetAddress> <Place type="Municipality">Bordeaux</Place> <Place type="Qualite">30.0</Place> <Place type="Departement">33</Place> <Place type="Bbox">-0.638699;44.810742;-0.533325;44.916694</Place> <Place type="Commune">Bordeaux</Place> <Place type="INSEE">33063</Place> <Place type="Territoire">FXX</Place> <PostalCode>33000</PostalCode> </Address> <GeocodeMatchCode accuracy="1.0" matchType="City"/> </GeocodedAddress> </GeocodeResponseList> </GeocodeResponse> </Response> </XLS>
Quand je le décode, je n'arrive pas à récupérer la position :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part $xml = new \SimpleXMLElement($xmlresult); print_r($xml);Les balises gml ne sont pas converties.
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 SimpleXMLElement Object ( [@attributes] => Array ( [version] => 1.2 ) [ResponseHeader] => SimpleXMLElement Object ( ) [Response] => SimpleXMLElement Object ( [@attributes] => Array ( [version] => 1.2 ) [GeocodeResponse] => SimpleXMLElement Object ( [GeocodeResponseList] => SimpleXMLElement Object ( [@attributes] => Array ( [numberOfGeocodedAddresses] => 1 ) [GeocodedAddress] => SimpleXMLElement Object ( [Address] => SimpleXMLElement Object ( [@attributes] => Array ( [countryCode] => StreetAddress ) [StreetAddress] => SimpleXMLElement Object ( [Street] => SimpleXMLElement Object ( ) ) [Place] => Array ( [0] => Bordeaux [1] => 30.0 [2] => 33 [3] => -0.638699;44.810742;-0.533325;44.916694 [4] => Bordeaux [5] => 33063 [6] => FXX ) [PostalCode] => 33000 ) [GeocodeMatchCode] => SimpleXMLElement Object ( [@attributes] => Array ( [accuracy] => 1.0 [matchType] => City ) ) ) ) ) ) )
Pourtant les namespaces du xml ont bien l'air connus, y compris le gml :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part $namespaces = $xml->getNamespaces(true); print_r($namespaces);Mais voila, impossible de récupérer ces <gml: Point> et <gml:pos>.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Array ( [] => http://www.opengis.net/xls [xsi] => http://www.w3.org/2001/XMLSchema-instance [gml] => http://www.opengis.net/gml )
Quelqu'un a déjà décodé ce XML en PHP ?
Partager