解析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), 
       }); 

告诉我,如果它的工作!

+0

应该是“Trackpoint”导致后代扩展方法区分大小写。 – MarcinJuraszek 2012-03-31 23:39:48