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);
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
                                                )

                                        )

                                )

                        )

                )

        )

)
Les balises gml ne sont pas converties.

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);
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
)
Mais voila, impossible de récupérer ces <gml: Point> et <gml:pos>.

Quelqu'un a déjà décodé ce XML en PHP ?