我有一些gpx文件,我想解析,然后输入到一个GIS格式。我下载了gpxpy,因为我需要它的一些函数,而不是只想从文件中提取lat和lon。但当我做解析器的时候
import gpxpy
p = gpxpy.parse(path_to_gpx_file)
它给我的是:
^{pr2}$在搜索了一段时间之后,这让我怀疑xml结构中存在错误。但是,我找不到他们。在
我用http://www.validome.org/xml/validate/来验证文件,但它说它们是有效的。在
这就是我的gpx文件的样子。我已经把这个减少到只包含3个trackpoint,但是它仍然给了我与完整(35k行)文件相同的错误。在
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1"
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
xmlns:wptx1="http://www.garmin.com/xmlschemas/WaypointExtension/v1"
xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
creator="Dakota 20" version="1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/WaypointExtensionv1.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd">
<metadata>
<link href="http://www.garmin.com">
<text>Garmin International</text>
</link>
<time>2015-03-01T16:59:53Z</time>
</metadata>
<trk>
<name>SKI1</name>
<extensions>
<gpxx:TrackExtension></gpxx:TrackExtension>
</extensions>
<trkseg>
<trkpt lat="43.3737357836" lon="130.0217922572">
<ele>166.26</ele>
<time>2015-03-01T08:34:40Z</time>
</trkpt>
<trkpt lat="43.3737673834" lon="130.0218102783">
<ele>166.22</ele>
<time>2015-03-01T08:34:42Z</time>
</trkpt>
<trkpt lat="43.3737869971" lon="130.0217925087">
<ele>166.78</ele>
<time>2015-03-01T08:35:02Z</time>
</trkpt>
</trkseg>
</trk>
</gpx>
编辑可能应该添加:使用python2.6、gpxpy0.9.8、pycharm 3.1.1
在我看来,它在任何地方都没有被记录下来,所以我会把它贴在这里。与其让解析器尝试打开文件,不如先生成一个file对象,然后将其提供给解析器,因此:
我不知道为什么我以前没试过。。。在
以下是parse函数的当前文档:
它指定您需要传入一个xml字符串或一个file对象,但没有说明接受文件名路径。在
相关问题 更多 >
编程相关推荐