2015-07-10 56 views
1

我想使用django解析kml文件。我正在使用pyKML解析器模块。我已完成以下步骤。KML使用django解析子元素

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

该文件与随机“点”和里面“多边形”标签的许多“地标”标签。 – User11112222

+0

我编辑了我的帖子,你现在可以试试这个代码吗? – FariaC

+0

我得到一个错误,如“开始标签预期,'<'找不到,第1行,第1列”。我错过了什么? – User11112222