我正在构建一个主要以GPX文件作为输入数据的应用程序。鉴于gpx文件应该由gpx模式定义(这里定义为:http://www.topografix.com/gpx.asp),我教导的第一件事情与我的应用程序合理的做法是根据模式验证输入文件(记住当然不同的版本)。到现在为止还挺好。对于我测试的初始文件,一切都很完美。但是,有时我会使用对相关gpx模式无效的.gpx文件。所以,我试图用其他类似的工具导入它们,奇怪的是,没有错误被返回,并且文件被完全解析。所以,最合理的结论是我的代码存在问题。然而,经过彻底调查,我的代码完全正常,目前没有任何问题。这甚至通过来自topografix.com的建议验证技术(http://www.topografix.com/gpx_validation.asp)验证,并且它再次得出结论该文件是无效的。GPX模式验证问题
因此,事实证明,有一些GPS设备/ GPS录音系统/等。这会产生.gpx文件而不符合官方的GPX模式。这个结论让我问这个问题:为什么?我严重不理解背后的想法。此外,我发现大多数无效文件都是这个问题,这个问题并不是一个可以被视为额外功能的东西,而是像某些元素的孩子不遵循正确的顺序,我认为这是完全愚蠢的。
这使我向你提出两个问题。首先,如果有人能向我解释为什么我在网上发现的很多GPX文件不符合官方的GPX模式,我会很高兴。其次,我想问问你如何解决这个问题,如果你要解析GPX文件。毕竟,无论如何,跟踪点将在文件中,所以我只需要忽略XML模式验证并继续直接解析?但是,如果有拼写错误的属性名称,我的系统会崩溃。任何关于如何处理解析GPS文件的信息都将非常感谢。
感谢您的时间和帮助。
问候,
斯托
编辑:我已经发布了一个新的线程:GPX parsing patterns and "standards",我要问人们是如何实际解析在实践中GPX文件。如果你有一个想法,请在那里发表你的答案。
您能否将您的无效文件发布到gist或其他一些pastebin中? – Homer6
没有什么特别的。问题在于跟踪点的子元素和时间顺序错误,这是GPX模式不允许的错误 – Petar