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