我正在構建一個主要以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