我有一個包含了一系列的項目節點,看起來像這樣的XML文檔:用LINQ查詢XDocument的最佳方法是什麼?
<data>
<item>
<label>XYZ</label>
<description>lorem ipsum</description>
<parameter type="id">123</parameter>
<parameter type="name">Adam Savage</parameter>
<parameter type="zip">90210</parameter>
</item>
</data>
,我想它的LINQ到一個匿名類型是這樣的:
var mydata =
(from root in document.Root.Elements("item")
select new {
label = (string)root.Element("label"),
description = (string)root.Element("description"),
id = ...,
name = ...,
zip = ...
});
什麼是最好的方式根據其'type'屬性的值拉取每個參數類型?由於有很多參數元素,您可以使用root.Elements("parameter")
這是一個集合。我能想到的最好的方法就是像下面這樣的方法,但我覺得必須有更好的方法?
(from c in root.Descendants("parameter") where (string)c.Attribute("type") == "id"
select c.Value).SingleOrDefault()
是的,這似乎是一個很好的方法喬恩......我必須解決的另一個問題是,有時值是空字符串,所以有一個幫助器方法來處理屬性查詢和優雅地處理轉換爲正確的類型在空弦的事件可能是最有意義的,謝謝 – snappymcsnap 2012-02-07 23:51:27