从XML文件创建KML文件

时间:2011-11-03 17:25:45

标签: python xml kml google-earth

如何使用python从XML文件创建KML文件。 我有很多XML文件。我已经使用SAX解析器解析了XML文件中的数据。

现在我想根据我解析的数据创建KML文件。

除了xml.dom.minidom之外还有其他方式来编写KML文件。 我目前正在考虑创建一个模板KML文件。然后复制模板KML文件并在其中填写“数据”。

有人能提出更好的建议吗?

我主要担心的是可维护性(使用minidom编写数据对于有人阅读而言非常困惑。)

1 个答案:

答案 0 :(得分:2)

试试xml.etree.ElementTree。这是一个在KML文件中创建几个点的简短示例:

from xml.etree import ElementTree as et

class Kml(object):
    def __init__(self):
        self.root = et.Element('kml')
        self.doc = et.SubElement(self.root,'Document')

    def add_placemark(self,name,desc,lat,long,alt):
        pm = et.SubElement(self.doc,'Placemark')
        et.SubElement(pm,'name').text = name
        et.SubElement(pm,'description').text = desc
        pt = et.SubElement(pm,'Point')
        et.SubElement(pt,'coordinates').text = '{},{},{}'.format(lat,long,alt)

    def write(self,filename):
        tree = et.ElementTree(self.root)
        tree.write(filename)

kml = Kml()
kml.add_placemark('Location1','Description1',-120,45,0)
kml.add_placemark('Location2','Description2',60,-45,0)
kml.write('out.kml')