36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
|
|
from lxml import etree
|
|
from lxml.builder import E
|
|
from zipfile import ZipFile
|
|
|
|
def makeXMLObject(name, description, coordinates):
|
|
return E.Object(
|
|
{'name': name},
|
|
E.Group('SAGs'),
|
|
E.Comment(description),
|
|
E.Table('/'),
|
|
E.Symbol('w'),
|
|
E.Latitude(coordinates.split(',')[1]),
|
|
E.Longitude(coordinates.split(',')[0]),
|
|
E.Interval('10'),
|
|
E.Enabled('1'),
|
|
E.ISEnabled('1'),
|
|
E.RFEnabled('1'),
|
|
E.RFPath('WIDE1-1,WIDE2-1'),
|
|
)
|
|
|
|
with ZipFile('2018 VT 50.kmz') as f:
|
|
xml = etree.fromstring(f.read('doc.kml'))
|
|
|
|
for placemark in xml.findall('.//{*}Placemark'):
|
|
point = placemark.find('{*}Point')
|
|
if point is not None:
|
|
name = placemark.find('{*}name').text.strip()
|
|
description = placemark.find('{*}description')
|
|
description = description.text.strip() if description is not None else ''
|
|
coordinates = point.find('{*}coordinates').text.strip()
|
|
print(etree.tostring(makeXMLObject(name, description, coordinates),
|
|
pretty_print=True, encoding='unicode'))
|
|
|