解析XML和GPS数据,列出
问题描述:
<lap1>
<Track>
<Trackpoint>
<Time>2012-03-29T08:06:57Z</Time>
<Position>
<LatitudeDegrees>46.2950333</LatitudeDegrees>
<LongitudeDegrees>7.1046736</LongitudeDegrees>
</Position>
<AltitudeMeters>1782.4216309</AltitudeMeters>
<DistanceMeters>0.0000000</DistanceMeters>
<HeartRateBpm xsi:type="HeartRateInBeatsPerMinute_t">
<Value>112</Value>
</HeartRateBpm>
<SensorState>Absent</SensorState>
</Trackpoint>
<Trackpoint>
<Time>2012-03-29T08:06:58Z</Time>
<Position>
<LatitudeDegrees>46.2950271</LatitudeDegrees>
<LongitudeDegrees>7.1046776</LongitudeDegrees>
</Position>
<AltitudeMeters>1782.4216309</AltitudeMeters>
<DistanceMeters>0.1714377</DistanceMeters>
<HeartRateBpm xsi:type="HeartRateInBeatsPerMinute_t">
<Value>112</Value>
</HeartRateBpm>
<SensorState>Absent</SensorState>
</Trackpoint>
</Track>
</lap1>
我有这样的一段XML从我的GPS设备和IM尝试将其解析到一个列表中的轨道解析XML和GPS数据,列出
public class track
{
public float positionx;
public float positiony;
public float altitude;
public DateTime Time;
}
已经没有做太多的XML的工作,我一直在阅读各种XML的方法,包括XPath和LinqToXML,但即时通讯挣扎解析XML,特别是“位置和其子值
我将是在这一个
答
这个S的任何帮助非常感谢应该诀窍:
XDocument doc = XDocument.Load("file.xml");
var tracks = (from elem in doc.Root.Descendants("Trackpoint")
select new track()
{
Time = DateTime.Parse(elem.Element("Time").Value, CultureInfo.InvariantCulture),
positionx = float.Parse(elem.Element("Positition").Element("LatitudeDegrees").Value, CultureInfo.InvariantCulture),
positiony = float.Parse(elem.Element("Positition").Element("LongitudeDegrees").Value, CultureInfo.InvariantCulture),
altitude = float.Parse(elem.Element("AltitudeMeters").Value, CultureInfo.InvariantCulture),
});
告诉我,如果它的工作!
应该是“Trackpoint”导致后代扩展方法区分大小写。 – MarcinJuraszek 2012-03-31 23:39:48