Python、XML、批量更改—迭代的替代方案?

Python、XML、批量更改—迭代的替代方案?,python,xml,Python,Xml,在Python中,有没有比遍历XML文档中的一组元素更好的方法来更改它们 下面是示例XML。相关部分是从每个追踪点的时间戳中减去每圈的开始时间。(每个轨迹点都有一个绝对(祖鲁时间)时间戳,轨迹点是一圈的一部分,它有自己的绝对(祖鲁时间)起始时间……理想的结果是每个轨迹点都有一圈中的相对时间,而不是格林威治时间。) 设置减法非常简单,具体操作如下: from dateutil.parser import parse dtLapStart = parse(eltLap.getAttribute('S

在Python中,有没有比遍历XML文档中的一组元素更好的方法来更改它们

下面是示例XML。相关部分是从每个追踪点的时间戳中减去每圈的开始时间。(每个轨迹点都有一个绝对(祖鲁时间)时间戳,轨迹点是一圈的一部分,它有自己的绝对(祖鲁时间)起始时间……理想的结果是每个轨迹点都有一圈中的相对时间,而不是格林威治时间。)

设置减法非常简单,具体操作如下:

from dateutil.parser import parse
dtLapStart = parse(eltLap.getAttribute('StartTime'))
问题是对于一圈内的每条赛道,是否有一种方法可以实现这一点:

parse(timestamps[i].firstChild.data) - dtLapStart 
对于所有的时间项,还是需要迭代eltTrack.getElementsByTagName(“时间”)集合

<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>
<...>

2015-01-16T22:24:00.000Z
181
2015-01-16T22:24:01.000Z
181