- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想使用 xml-conduit
来解析 GPX 文件。到目前为止,我有以下内容:
{-# LANGUAGE OverloadedStrings #-}
import Control.Applicative
import Data.Text as T
import Text.XML
import Text.XML.Cursor
data Trkpt = Trkpt {
trkptLat :: Text,
trkptLon :: Text,
trkptEle :: Text,
trkptTime :: Text
} deriving (Show)
trkptsFromFile path =
gpxTrkpts . fromDocument <$> Text.XML.readFile def path
gpxTrkpts =
child >=> element "{http://www.topografix.com/GPX/1/0}trk" >=>
child >=> element "{http://www.topografix.com/GPX/1/0}trkseg" >=>
child >=> element "{http://www.topografix.com/GPX/1/0}trkpt" >=>
child >=> \e -> do
let ele = T.concat $ element "{http://www.topografix.com/GPX/1/0}ele" e >>= descendant >>= content
let time = T.concat $ element "{http://www.topografix.com/GPX/1/0}time" e >>= descendant >>= content
let lat = T.concat $ attribute "lat" e
let lon = T.concat $ attribute "lon" e
return $ Trkpt lat lon ele time
示例 GPX 文件是 here .
我得到了奇怪的结果,其中解析的文本大部分是空的,有一些零星的实际值,尽管原始 GPX 文件数据都是有效的。当有一个实际值时,它只在记录的一个字段中。
我很确定我没有正确使用 xml-conduit
API。我做错了什么?
最佳答案
两个问题。首先,命名空间有错字;它应该是 http://www.topografix.com/GPX/1/1
。其次,您最终的 Kleisli 箭头(\e -> do -- etc.
)作用于 trkpt
元素的子元素,而不是作用于 trkpt
他们自己。这是一个 gpxTrkpts
应该做你想做的事:
gpxTrkpts =
child >=> element "{http://www.topografix.com/GPX/1/1}trk" >=>
child >=> element "{http://www.topografix.com/GPX/1/1}trkseg" >=>
child >=> element "{http://www.topografix.com/GPX/1/1}trkpt" >=>
\e -> do
let cs = child e
ele = T.concat $ cs >>= element "{http://www.topografix.com/GPX/1/1}ele" >>= descendant >>= content
time = T.concat $ cs >>= element "{http://www.topografix.com/GPX/1/1}time" >>= descendant >>= content
lat = T.concat $ attribute "lat" e
lon = T.concat $ attribute "lon" e
return $ Trkpt lat lon ele time
关于xml - 如何使用 Haskell 的 xml 管道解析 GPX 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31897737/
起亚, 我从 Strava 导出了我所有的 GPX 文件,所以我可以对它们进行一些分析,但我一直在试图弄清楚每个文件用于什么类型的事件。 例如,我的文件看起来像这样,其中 元素似乎定义了事件类型。
我正在开发 iOS 5 应用程序。 我想开发一个 GPX 解析器,但我想知道在我开始开发它之前是否已经开发了一个。 你知道有没有 Objective-c GPX 解析器吗? 最佳答案 看看: http
我正在尝试使用 writeOGR 创建点的 gpx 文件。 writeOGR() 将创建一个没有错误的 shp 文件,但如果我尝试编写 KML 或 GPX 文件,我会收到此错误。我在 Windows
我正在尝试在 Xcode 中模拟一条具有速度、纬度和经度信息的路径。 有一个站点生成相同的内容:http://www.bikehike.co.uk/mapview.php 我找到了一个 awk 脚本可
我正在使用 openlayers(用于 Web GIS 的 JavaScript API)开发一个 Web 测绘项目,我需要为用户提供一个选项,以从他们之前所在的坐标中获取 .gpx 导出。 我正在选
假设我有许多 .gpx 文件(这些文件包含来自 Garmin eTrex 的 GPX 航路点数据)。我想将它们以不同的名称加载到 R 中并对其进行操作。 我可以这样读取一个文件: library(ma
我想知道 GPX 赛道和路线文件之间的基本区别是什么 最佳答案 路线是一系列航点,它是您的导航计划。轨迹是您在尝试实现计划(路线)时实际遵循的记录路径。 作为 GPX 文件,路线和轨迹使用不同的 XM
我想为 IOS 实现一个应用程序。此应用程序应跟踪 gpx 文件中的路线。你能告诉我一些链接或开源项目吗?非常感谢 最佳答案 所以我想这是一个有点老的问题,但我在最近搜索 GPX 时发现了这个问题并且
我的 iOS 程序将创建一个 gpx 文件。这两者之间的正确格式是什么?是吗: 或者 New Track
我一直在四处寻找,但无法找到 GPX 文件中与“0”高程相对应的椭球体或大地水准面的标准。有标准吗?我是否只假设 WGS84 椭球体?或者,如果使用了不同的标准,是否有办法从文件中找出使用的标准?还是
我已经有一段时间对将 GPX 文件添加到 Iphone/iPad 项目有疑问了。GPX 文件到底包含什么以及它在模拟器上运行应用程序时如何帮助我们。 最佳答案 首先看一下this wiki site
我有一个需要构建的 Android 程序,它将一些 GPS 坐标导出到 gpx 文件。这是我到目前为止的代码。我正在寻找从位置管理器存储 GPS 坐标然后传递到 gpx 文件的最佳方法。 主 Acti
如何在 GPX 文件中发表评论? 我在谷歌上查过,这里没有运气。谢谢 ! 最佳答案 假设 GPX = GPS eXchange Format 它只是 XML,因此您只需要一个标准的 XML 注释:
我目前正在使用 DDMS 透视图通过 gpx 文件模拟 android 模拟器的运动。但是,我只能找到带有纬度/经度对的 gpx 文件,而不是速度、高度等。关于找到一个好的 gpx 文件的任何建议,其
如何轻松创建一个 GPX 文件来表示两点之间的轨迹(带有航路点)? 最佳答案 这Tool太棒了!设置位置或路线并下载 GPX 文件。不要忘记删除文件末尾的 .txt。 玩得开心:D 关于ios - 创
我按照教程学习解析 gpx 文件(位于我的原始文件夹中)中的数据,但出于某种原因,没有数据被解析到 NodeList 中。这是我的 XMLParser 类 package bry.Bicker.Oja
我有一个带有速度列的 Pandas 数据框,其中偶尔有噪音(数据来自 Garmin,代表运行期间捕获的数据)。 我正在尝试找到一种对相邻点进行平均的方法,但是当我遇到这样的事情时 9.11227344
我有一个文本文件,其中包含以逗号分隔的不同点的纬度和经度,如下所示。我想将它转换成 GPX 文件,这样我就可以使用它来将坐标从这个文件发送到我的模拟器。如何通过 java 类做到这一点?我的文本文件如
Wikipedia says GPX 文件的 MIME 类型是 application/gpx+xml。所以我使用了以下代码: startActivityForResult( new Inte
有没有一种方法可以在运行时以编程方式更改位置模拟器城市?例如,这将允许测试模拟伦敦或东京。 下图显示了如何手动切换位置(GPX 文件)。如何在应用程序运行时以编程方式实现此结果? 最佳答案 另一种设置
我是一名优秀的程序员,十分优秀!