在Python中,有没有更好的方法来更改XML文档中的一堆元素而不是迭代它们?
下面的示例XML。相关部分是从每个Tracepoint的时间戳中减去每个Lap的Starttime。 (每个Trackpoint都有一个绝对(Zulu时间)时间戳,Trackpoints是Lap的一部分,它有自己的绝对(祖鲁时间)StartTime ...期望的结果是每个Trackpoint都有 relative 一圈的时间,而不是格林威治的时间。)
使用以下方法设置减法很简单:
from dateutil.parser import parse
dtLapStart = parse(eltLap.getAttribute('StartTime'))
问题是针对Lap内的每个Track,有没有办法批量执行此操作:
parse(timestamps[i].firstChild.data) - dtLapStart
对于所有Time项,还是我需要迭代eltTrack.getElementsByTagName(" Time")集合?
<Lap StartTime="2015-01-16T22:23:59.000Z">
<Track>
<Trackpoint>
<Time>2015-01-16T22:24:00.000Z</Time>
<HeartRateBpm>
<Value>181</Value>
</HeartRateBpm>
</Trackpoint>
<Trackpoint>
<Time>2015-01-16T22:24:01.000Z</Time>
<HeartRateBpm>
<Value>181</Value>
</HeartRateBpm>
</Extensions>
</Trackpoint>
<...>