使用django解析子元素的KML

时间:2015-07-10 20:36:16

标签: python xml django parsing kml

我正在尝试使用django解析kml文件。我正在使用pyKML Parser Module。我已完成以下步骤。

 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 个答案:

答案 0 :(得分: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