0
我正在尝试使用LINQ读取XML文件。阅读和解析简单的XML文件没有问题,但是这个让我难住。 以下是该文件的一部分:该文件格式正确且有效。LINQ to XML:读取C#中的XML
<Activities>
<Activity Sport="Other">
<Id>2009-12-17T19:53:14Z</Id>
<Lap StartTime="2009-12-17T19:53:14Z">
<TotalTimeSeconds>820.5400000</TotalTimeSeconds>
<DistanceMeters>1510.3433838</DistanceMeters>
<MaximumSpeed>2.6089859</MaximumSpeed>
<Calories>104</Calories>
<AverageHeartRateBpm xsi:type="HeartRateInBeatsPerMinute_t">
<Value>128</Value>
</AverageHeartRateBpm>
<MaximumHeartRateBpm xsi:type="HeartRateInBeatsPerMinute_t">
<Value>139</Value>
</MaximumHeartRateBpm>
<Intensity>Active</Intensity>
<TriggerMethod>Manual</TriggerMethod>
... 这里是我的代码
XDocument document = XDocument.Load(myfileXml);
var query = from gtc in document.Descendants("Activities").Elements("Lap")
select new
{
Id = gtc.Parent.Element("Id").Value,
StartTime = gtc.Attribute("StartTime").Value,
TotalSeconds = gtc.Element("TotalTimeSeconds").Value,
DistanceMeters = gtc.Element("DistanceMeters").Value,
MaximumSpeed = gtc.Element("MaximumSpeed").Value,
Calories = gtc.Element("Calories").Value,
Intensity = gtc.Element("Intensity").Value,
TriggerMethod = gtc.Element("TriggerMethod").Value
};
dataGridView1.DataSource = query.ToList();
当我运行它,我看到标题中出现的DataGridView,但没有数据。有人能告诉我我要去哪里吗?在解决方案中,有人可以告诉我如何读取心率值?谢谢!
我做了,仍然没有来自查询的数据。 – 2009-12-18 18:36:13
我现在已经发布了我的完整源代码,以便您可以验证它是否在新的干净项目中工作(只需添加一个按钮和一个DataGridView,然后连接按钮的单击处理程序即可运行)。所以破坏必须由xsi:type属性引起,或者由其他你不告诉我们的东西引起。 – 2009-12-18 19:03:12
这就像你说的那样工作,但只有当xml在字符串中。如果我尝试从文件中读取它,则查询是空的。 – 2009-12-18 20:42:20