我試圖讓LINQ的理解,和MSDN頁面上開始了:我的LINQ在這裏有什麼問題?做什麼的MSDN說,但
http://msdn.microsoft.com/library/bb308960.aspx#xlinqoverview_topic2f
在這裏,它引用了一些示例XML
<contacts>
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
<address>
<street1>123 Main St</street1>
<city>Mercer Island</city>
<state>WA</state>
<postal>68042</postal>
</address>
<netWorth>10</netWorth>
</contact>
<contact>...
並說下面將抽出一個「電話」元素列表:
XElement contacts = XElement.Load(@"C:\Projects\ALL_MY_PROJECTS\LINQ_Noodling\UI\Contacts.xml");
foreach (x in contact.Elements("phone")) {
Console.WriteLine(x);
}
這樣的:
<phone>206-555-0144</phone>
<phone>425-555-0145</phone>
除外。我什麼也沒得到。如果我用上面的「聯繫人」替換上面的「電話」,我會得到所有聯繫人(包括「姓名」,「電話」,「地址」和所有子元素),但就是這樣。這不是MSDN最後一次提供誤導或不正確的信息,但所提供的信息看起來正確且合乎邏輯。
您是否嘗試過用「地址」或「netWorth」取代「手機」,看會發生什麼? – ChrisF 2010-12-06 23:34:18
那麼代碼正在尋找聯繫人文件中的元素,這將是'聯繫'級別,而不是電話級別。你想要的是一個級別。 – 2010-12-06 23:34:56