【发布时间】:2014-09-27 11:17:36
【问题描述】:
我正在使用 pyKML 模块从给定的 KML 文件中提取坐标。
我的Python代码如下:
from pykml import parser
fileobject = parser.fromstring(open('MapSource.kml', 'r').read())
root = parser.parse(fileobject).getroot()
print(xml.Document.Placemark.Point.coordinates)
但是,在运行此程序时,我收到以下错误:
ValueError: Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.
在寻找解决方案时,我遇到了这个解决方案http://twigstechtips.blogspot.in/2013/06/python-lxml-strings-with-encoding.html,我从那里尝试过这个(我不确定这是正确的方法):
from pykml import parser
from lxml import etree
from os import path
kml_file = open('MapSource.kml', 'r')
parser = etree.XMLParser(recover=True)
xml = etree.fromstring(kml_file, parser)
print(xml.Document.Placemark.Point.coordinates)
这给了我ValueError: can only parse strings。我解析 KML 并获取该结构的坐标的正确方法是什么?
【问题讨论】:
-
该问题可能与您尝试解析的特定 KML 文件有关。您能否将 KML 文件发布到公共位置,以便其他人可以尝试复制您遇到的问题?
-
@TylerErickson 给你:raw.githubusercontent.com/SiddharthMantri/TFTSEnhance/master/…