如何使用python和xml.etree解析航点列表?

时间:2017-07-28 14:04:07

标签: python xml tree

以下点列表代表一个曲目

   <Track_Vertices>
        <Point1>36 35.58 N, 1 8.91 W</Point1>
        <Point2>36 42.56 N, 0 56.27 W</Point2>
        <Point3>36 40.91 N, 0 54.86 W</Point3>
        <Point4>36 33.94 N, 1 7.5 W</Point4>
        <Point5>36 32.29 N, 1 6.09 W</Point5>
        <Point6>36 39.27 N, 0 53.45 W</Point6>
        <Point7>36 37.62 N, 0 52.04 W</Point7>
        <Point8>36 30.64 N, 1 4.68 W</Point8>
        <Point9>36 28.99 N, 1 3.27 W</Point9>
        <Point10>36 35.97 N, 0 50.63 W</Point10>

每条赛道都有不同数量的航点。

航点位置的解析如下。

root.find("*SRU_Track_Vertices/Point1")

买我不知道“Pointx”之后的数字,他们正在尝试像

这样的东西
root.findall("*SRU_Track_Vertices/Point*")

如何不使用正则表达式?

1 个答案:

答案 0 :(得分:1)

只需调用.text - 您可以使用以下内容输出所有航路点:

track = root.find('.//Track_Vertices')

for i in range(1, len(track)+1):
    waypoint = track.find('Point{}'.format(i)).text

    print(waypoint)

适用于所有<Track_Vertices>元素:

tracks = root.findall('.//Track_Vertices')

for t in tracks:

    for i in range(1, len(t)+1):
        waypoint = t.find('Point{}'.format(i)).text

        print(waypoint)