在上一个问题中,我问了一个python3.5程序中的问题,该程序将多个gpx轨迹合并到一个klm文件中。我没有收到关于这个问题的答案,我决定把这个bug作为一个可选的特性。在
今天,我完成了程序的GUI编程,并开始使用其他(旧的)gpx文件进行测试,我从计算机上找到了这个文件。运行程序时,出现此错误消息,但不会中断程序工作。在
ERROR:root:unbound prefix: line 14, column 0
Traceback (most recent call last):
File "C:\Program Files\Python35\lib\site-packages\gpxpy\parser.py", line 188, in parse
self.xml_parser = XMLParser(self.xml)
File "C:\Program Files\Python35\lib\site-packages\gpxpy\parser.py", line 44, in __init__
self.dom = mod_minidom.parseString(xml)
File "C:\Program Files\Python35\lib\xml\dom\minidom.py", line 1968, in parseString
return expatbuilder.parseString(string)
File "C:\Program Files\Python35\lib\xml\dom\expatbuilder.py", line 925, in parseString
return builder.parseString(string)
File "C:\Program Files\Python35\lib\xml\dom\expatbuilder.py", line 223, in parseString
parser.Parse(string, True)
xml.parsers.expat.ExpatError: unbound prefix: line 19, column 0
经过反复试验,我发现这是由gpxpy.parse(gpx_file)
引起的,这会引起gpxpy.parser.mod_gpx.GPXXMLSyntaxException
。因为我将它作为错误异常使用,那个错误将返回函数,父循环将尝试解析列表中的下一个文件。将跳过导致异常的GPX轨迹。在
我不知道是什么导致了这个错误,也不知道输入文件中的哪一行。回溯发生在每个无法解析的文件中,但消息最后一行中的行号有时不同。可以是14、18、19或22。在
这个错误是什么意思?究竟是什么导致了这个错误?怎样才能避免呢?我应该编辑gpx轨迹、脚本还是忽略错误?在
我尝试导入的所有GPX轨迹都是由gpxpy模块本身生成的。在
编辑:这是两个gpx文件的开头。首先是原始的,然后是gpxpy生成的。在
^{3}$修改的文件:
<?xml version="1.0" encoding="UTF-8"?>
<gpx xmlns="http://www.topografix.com/GPX/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" version="1.1" creator="Locus Map, Android">
<metadata>
<desc>File with points/tracks from Locus Map Pro/3.16.2</desc>
<author>
<link ></link></author>
<copyright ></copyright>
<link ></link></metadata>
<trk>
<name>2015-12-27.Lohusalus.jalutamas</name>
<desc> </desc>
<link ></link>
<extensions>
<gpx_style:line>
</gpx_style:line></extensions>
<trkseg>
为了防止gpxpy gpx.to_xml()
定义行样式,我可以做些什么?在
目前没有回答
相关问题 更多 >
编程相关推荐