2
我想熟悉使用XDocument
API來使用lambda語法來解析XML。XDocument - 表達式幫助
我想要做的是根據以下XML結構創建一個IEnumerable
列表Product
。我知道如何獲得所有product
節點,但我想要獲得每個產品節點name
屬性,然後從「產品」節點中選擇每個item
節點並解析其值。
所以我想利用這個XML:
<products>
<product name="Prod1">
<item hwid="abk9184">
<href>Prod1/abk9184_en-us/abk9184.html</href>
<localization>en-us</localization>
<build.start>2011-06-08 22:02 PM</build.start>
<build.icp>9.0.192.32</build.icp>
</item>
<item hwid="abk9185">
<href>Prod1/abk9185_en-us/abk9185.html</href>
<localization>en-us</localization>
<build.start>2011-06-08 22:03 PM</build.start>
<build.icp>9.0.192.32</build.icp>
</item>
</product>
<product name="Prod2">
<item hwid="aa6410">
<href>Prod2/aa6410_en-us/aa6410.html</href>
<localization>en-us</localization>
<build.start>2011-06-08 22:04 PM</build.start>
<build.icp>9.0.192.32</build.icp>
</item>
</product>
</products>
,並從中我想獲得這些列表:
public class Product
{
public string Name { get; set; }
public string Hwid { get; set; }
public string Href { get; set; }
public string Localization { get; set; }
public DateTime BuildDateTime { get; set; }
public string IcpBuildVersion { get; set; }
}
所以,雖然我有2個產品節點我竟又與每個的許多產品實例。我想學習如何使用XDocument
和lambda語法來完成此操作。有人能告訴我方式嗎?
IEnumerable<Product> products = xDocument.Decendants("product")
.Select(e => new Product { Name = e.Name })
但認爲必須有一些循環來獲取每個產品的每個項目。
哦這麼簡單:)謝謝 – Nick 2011-06-11 05:18:53