Разбор KML дочерних элементов с использованием django

Я пытаюсь разобрать файл kml с помощью django. Я использую модуль парсера pyKML. Я выполнил следующие шаги.

 root = parser.fromstring(open('myfile.kml').read())

Содержание файла:

 <document>
    <Placemark>
      <name>t1</name>
       <Point><coordinates>v1</coordinates>
       </Point>
    </Placemark>
    <Placemark>
     <name>t2</name>
     <Polygon>
       <outerBoundaryIs>
         <LinearRing><coordinates>v2</coordinates>
        </LinearRing>
      </outerBoundaryIs>
    </Polgon>
   </Placemark>
  </document>

Я могу получить имена, используя следующие:

name = []

for ele in root.Document.Placemark:
    name.append(ele.name)

Но я не знаю, как получить значения координат из другой метки. Пожалуйста, помогите мне здесь.

1 ответ

Решение

Попробуй это:

for pm in root.Document.Placemark:
    point = [p for p in pm.getchildren() if p.tag.endswith('Point')]
    if point:
        coords = point[0].coordinates.text
    else:
        poly = [p for p in pm.getchildren() if p.tag.endswith('Polygon')]
        if poly:
            coords = poly[0].outerBoundaryIs.LinearRing.coordinates.text
    print pm.name, coords
Другие вопросы по тегам