Bonjour,

Je galère avec xml.etree.ElementTree pour récupérer les données dont j'ai besoin.

Voici le code que je teste

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/python3
# -*-coding:utf-8 -*
 
import xml.etree.ElementTree as ET
 
tree = ET.parse("fichier.xml")
namespace = {"gpx": "http://www.topografix.com/GPX/1/1"} 
for elem in tree.findall('gpx:trkpt', namespace):
    altitude = elem.find('ele')
    heure = elem.find('time')
    lat = elem.get('lat')
    lon = elem.get('lon')
    #print(lat, lon)
    print(lat, lon, heure, altitude)
et le fichier que j'essaie de "parser"
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
<?xml version="1.0" encoding="UTF-8"?>
<gpx
  version="1.1"
  creator="Runkeeper - http://www.runkeeper.com"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://www.topografix.com/GPX/1/1"
  xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"
  xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1">
  <name><![CDATA[Running 28/8/18 4:07 pm]]></name>
  <time>2018-08-28T16:07:08Z</time>
<trkpt lat="48.801130000" lon="2.432096000"><ele>40.0</ele><time>2018-08-28T16:07:08Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>93</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.801182000" lon="2.432334000"><ele>40.0</ele><time>2018-08-28T16:07:18Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>101</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.801259000" lon="2.432525000"><ele>40.0</ele><time>2018-08-28T16:07:28Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>111</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.801390000" lon="2.432719000"><ele>40.9</ele><time>2018-08-28T16:07:38Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>124</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.801501000" lon="2.433018000"><ele>41.7</ele><time>2018-08-28T16:07:48Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>129</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.801564000" lon="2.433322000"><ele>42.8</ele><time>2018-08-28T16:07:58Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>130</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.801625000" lon="2.433611000"><ele>43.5</ele><time>2018-08-28T16:08:08Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>134</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.801701000" lon="2.433925000"><ele>44.0</ele><time>2018-08-28T16:08:18Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>135</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.801876000" lon="2.434104000"><ele>45.4</ele><time>2018-08-28T16:08:28Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>135</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.802111000" lon="2.434184000"><ele>45.4</ele><time>2018-08-28T16:08:38Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>136</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.802352000" lon="2.434208000"><ele>44.1</ele><time>2018-08-28T16:08:48Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>138</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.802568000" lon="2.434170000"><ele>42.5</ele><time>2018-08-28T16:08:58Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>140</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.802742000" lon="2.434340000"><ele>41.4</ele><time>2018-08-28T16:09:08Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>139</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.802849000" lon="2.434383000"><ele>41.0</ele><time>2018-08-28T16:09:18Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>139</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.802973000" lon="2.434583000"><ele>40.2</ele><time>2018-08-28T16:09:28Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>138</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.803103000" lon="2.434905000"><ele>39.6</ele><time>2018-08-28T16:09:38Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>136</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.803234000" lon="2.435194000"><ele>38.6</ele><time>2018-08-28T16:09:48Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>136</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.803377000" lon="2.435457000"><ele>38.5</ele><time>2018-08-28T16:09:58Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>138</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.803513000" lon="2.435729000"><ele>38.3</ele><time>2018-08-28T16:10:08Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>138</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.803662000" lon="2.435998000"><ele>38.0</ele><time>2018-08-28T16:10:18Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>142</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
<trkpt lat="48.803792000" lon="2.436322000"><ele>38.8</ele><time>2018-08-28T16:10:28Z</time><extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>142</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions></trkpt>
</gpx>

Ce sont les lignes altitude = elem.find('ele') et heure = elem.find('time') qui me renvoient du "None" et si je code altitude = elem.find('ele').text j'obtiens un plantage.
Je ne sais pas si c'est encore un problème de namespace ...
Bref si quelqu'un a une idée pour que je puisse récupérer les valeurs en question

Merci