2017-07-28 2 views
0

ポイントの次のリストは、すべてのトラックがウェイポイントのdiferent番号を持っているpythonとxml.etreeを使ってウェイポイントのリストを解析するには?

<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*") 

ような何かをしようとしていますか?

+0

はroot.findallは(「(テキストを(含まれている '、これを使用してみてください)、 'Point') ")' – Stack

+0

'' '' '要素に' '' '' Pointxyz'''要素以外のものが含まれていますか? – wwii

答えて

1

単に.textを呼び出す - あなたは、出力のようなものを持つすべてのウェイポイントすることができますすべての<Track_Vertices>要素については

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

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

    print(waypoint) 

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) 
+0

それは動作します。ありがとう – kamome

+0

私はあなたのXMLの構造全体を知っていない、もう少し役立つだろう。 'Track_Vertices'要素はツリーのルートですか? – flevinkelming

+0

すばらしく、私は助けることができてうれしい。 – flevinkelming

関連する問題