从XML文件创建KML文件

0 投票
1 回答
2852 浏览
提问于 2025-04-17 05:35

我想知道怎么用Python把XML文件转换成KML文件。

我手上有很多XML文件,已经用SAX解析器把里面的数据提取出来了。

现在我想把这些提取出来的数据转成KML文件。

除了xml.dom.minidom,还有没有其他方法可以写KML文件?我现在在考虑先创建一个模板KML文件,然后复制这个模板,再把数据填进去。

有没有人能给我推荐个更好的方法?

我最关心的是可维护性(用minidom写数据对别人来说看起来挺复杂的)。

1 个回答

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')

撰写回答