我对Go来说还比较陌生,但是正在努力完成一项基本任务。我正在使用“ encoding / xml”包解析GPX文件,并具有以下示例xml数据;
<gpx creator="StravaGPX" version="1.1" 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 http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
<metadata>
<time>2013-02-16T10:11:25Z</time>
</metadata>
<trk>
<name>Demo Data</name>
<trkseg>
<trkpt lat="51.6395658" lon="-3.3623858">
<ele>111.6</ele>
<time>2013-02-16T10:11:25Z</time>
<extensions>
<gpxtpx:TrackPointExtension>
<gpxtpx:atemp>8</gpxtpx:atemp>
<gpxtpx:hr>136</gpxtpx:hr>
<gpxtpx:cad>0</gpxtpx:cad>
</gpxtpx:TrackPointExtension>
</extensions>
</trkpt>
到目前为止,我能够获得以下几种类型的最基本的信息:
type Gpx struct {
Creator string `xml:"creator,attr"`
Time string `xml:"metadata>time"`
Title string `xml:"trk>name"`
TrackPoints []TrackPoint `xml:"trk>trkseg>trkpt"`
}
type TrackPoint struct {
Lat float64 `xml:"lat,attr"`
Lon float64 `xml:"lon,attr"`
Elevation float32 `xml:"ele"`
Time string `xml:"time"`
Temperature int `xml:"extensions>gpxtpx>atemp"`
}
我无法解析的地方是TrackPoint.Temperature。我无法正确匹配扩展下的命名空间节点的标记。
关于我要去哪儿有什么建议吗?
相关分类