【发布时间】:2020-04-24 03:34:22
【问题描述】:
我正在尝试重新组织一些 xml 文件,这些文件包含完整路由的多个部分,其结构如下:
<trk>
<name>GPSRoute.XML</name>
<trkseg>
<trkpt lat="37.077882" lon="-112.242785">
<ele>1688.00</ele>
<time>2020-04-18T01:56:39.80Z</time>
</trkpt>
<extensions>
<name>14</name>
<gte:color>#00ce00</gte:color>
</extensions>
</trkseg>
<trkseg>
<trkpt lat="37.077888" lon="-112.242783">
<ele>1688.00</ele>
<time>2020-04-18T01:56:39.80Z</time>
</trkpt>
<extensions>
<name>1</name>
<gte:color>#00ce00</gte:color>
</extensions>
</trkseg>
</trk>
我正在尝试按名称而不是当前时间对文件进行排序,并将结果写入新文件。到目前为止,这就是我所取得的成就,它成功地捕获了列表中的名称,但它在 data.sort() 上出错:
“TypeError:'xml.etree.ElementTree.Element'和'xml.etree.ElementTree.Element'的实例之间不支持'
如果有人能指出我正确的方向,将不胜感激!
import xml.etree.ElementTree as ET
tree = ET.parse('Filename.xml')
root = tree.getroot()
data = []
for track in root:
for segment in track:
for extension in segment:
for name in extension.findall('name'):
print(name.text)
data.append((name))
data.sort()
tree.write('Sorted.xml')
【问题讨论】:
-
你能添加预期的输出吗?
标签: python xml sorting xml-parsing elementtree