Я пишу код Python для чтения файла TCX, который загружается с моего монитора Polar Heart Rate.Я попытался использовать библиотеку xml.dom, и то, что я получаю, похоже, является своего рода классом или местом в памяти.
Данные, на которые я смотрю, имеют частоты сердечных сокращений (и другую информацию) для каждой секунды вфайл упражнения.
Вот часть файла данных:
<Trackpoint>
<Time>2019-05-24T12:12:10.000Z</Time>
<Position><LatitudeDegrees>37.09307833</LatitudeDegrees
<LongitudeDegrees>-84.60697</LongitudeDegrees></Position>
<DistanceMeters>0.10000000149011612</DistanceMeters>
<HeartRateBpm><Value>73</Value></HeartRateBpm>
<Cadence>0</Cadence><SensorState>Present</SensorState>
</Trackpoint>
<Trackpoint>
<Time>2019-05-24T12:12:11.000Z</Time>
<Position><LatitudeDegrees>37.09307667</LatitudeDegrees>
<LongitudeDegrees>-84.60697667</LongitudeDegrees></Position>
<HeartRateBpm><Value>73</Value></HeartRateBpm>
<Cadence>0</Cadence><SensorState>Present</SensorState>
</Trackpoint>
<Trackpoint>
<Time>2019-05-24T12:12:12.000Z</Time>
<Position><LatitudeDegrees>37.09307167</LatitudeDegrees>
<LongitudeDegrees>-84.60698167</LongitudeDegrees></Position>
<DistanceMeters>0.800000011920929</DistanceMeters>
<HeartRateBpm><Value>73</Value></HeartRateBpm>
<Cadence>0</Cadence><SensorState>Present</SensorState>
</Trackpoint>
Вот код, который я использую:
from xml.dom import minidom
from datetime import *
xmldoc = minidom.parse("testfile.tcx")
print(xmldoc)
tcd = xmldoc.getElementsByTagName("TrainingCenterDatabase")[0]
activitiesElement = tcd.getElementsByTagName("Activities")[0]
activities = activitiesElement.getElementsByTagName("Activity")
for activity in activities:
sport = activity.attributes["Sport"]
sportName = sport.value
idElement = activity.getElementsByTagName("Id")[0]
timeOfDay = idElement.firstChild.data
year = int(timeOfDay[0:4])
month = int(timeOfDay[5:7])
day = int(timeOfDay[8:10])
date = datetime(year,month,day)
#print(sportName, month, day, year)
print(sportName, date)
trackPoints = tcd.getElementsByTagName("Time")
heartRate = tcd.getElementsByTagName("Value")
print(type(trackPoints))
print(type(heartRate))
i=0
while i <= 10:
print(trackPoints[i], heartRate[i])
i += 1
Это вывод, который яПолучение из этой программы:
C:\Python\Heart Rate Data>python "c:/Python/Heart Rate
Data/readfiletest4.py"
<xml.dom.minidom.Document object at 0x00000217F5A86948>
Running 2019-05-24 00:00:00
<class 'xml.dom.minicompat.NodeList'>
<class 'xml.dom.minicompat.NodeList'>
<DOM Element: Time at 0x217f5a92048> <DOM Element: Value at 0x217f5a4daf8>
<DOM Element: Time at 0x217f5a92638> <DOM Element: Value at 0x217f5a4dc28>
<DOM Element: Time at 0x217f5a92b90> <DOM Element: Value at 0x217f5a923d8>
<DOM Element: Time at 0x217f5aae210> <DOM Element: Value at 0x217f5a92930>
<DOM Element: Time at 0x217f5aae768> <DOM Element: Value at 0x217f5a92f20>
<DOM Element: Time at 0x217f5aaed58> <DOM Element: Value at 0x217f5aae508>
<DOM Element: Time at 0x217f5aaf3d8> <DOM Element: Value at 0x217f5aaeaf8>
<DOM Element: Time at 0x217f5aaf9c8> <DOM Element: Value at 0x217f5aaf178>
<DOM Element: Time at 0x217f5ab0048> <DOM Element: Value at 0x217f5aaf768>
<DOM Element: Time at 0x217f5ab0638> <DOM Element: Value at 0x217f5aafd58>
<DOM Element: Time at 0x217f5ab0c28> <DOM Element: Value at 0x217f5ab03d8>
Я надеюсь получить какой-нибудь массив, содержащий различные элементы из файла TCX, чтобы я мог в конечном итоге сделать некоторые графики и т. д.