2012-12-18 176 views
1

試圖讀取使用LINQ這個XML到XML如何從XML文件使用LINQ到XML讀取數據?

<Root> 
    <shelves> 
     <bookNumber>12</bookNumber> 
     <coverType unit="H">soft</coverType> 
     <pages>100</pages> 
     <Weight units="lb">1.2</Weight> 
     <chapter sample="1">example 1</<chapter> 
     <chapter sample="2">example 2</<chapter> 
     <chapter sample="3">example 3</<chapter> 
     <chapter sample="4">example 4</<chapter> 
     <chapter sample="5">example 5</<chapter> 
     <chapter sample="6">example 6</<chapter> 
     <chapter sample="7">example 7</<chapter> 
     <chapter .................</chapter> 
     <chapter .................</chapter> 
     <chapter .................</chapter> 
     <chapter .................</chapter> 
     <chapter .................</chapter> 
     .............. 
    </shelves> 
</Root> 

那代碼我與努力: - 。但是如何讀取所有元素'章節'的值呢?

var book = from b in xml.Root.Elements("shelves") 
          select b; 
    foreach (var s in book) 
    { 
     booknumber = s.Element("bookNumber").Value, 
     covertype = s.Element("bookNumber").Value, 
     coverTypeUnit = s.Element("bookNumber").Attribute("unit").Value, 
     ........... 
     chapter = s.Element("bookNumber").Value ???? 
    } 
+0

你有沒有嘗試使用的章節內容只是另一種的foreach元素(「章節」)? –

回答

1
var values = s.Elements("chapter").Select(n => n.Value).ToArray(); 

此外,你從相同的元素(booknumber)一遍又一遍地閱讀。你可能想檢查你的代碼。

編輯:也產生屬性:

s.Elements("chapter"). 
Select(n => new {Topic = n.Attribute("topic").Value, Value = n.Value}). 
ToArray(); 
+0

謝謝。說'章節'的每個元素都有一個屬性'主題'。如何在Array中獲取屬性? – user1327064

+0

您可以使用匿名類型。看到我的文章的例子。 – Mir

+0

但是不能使用..... ToArray()設置Array []屬性? – user1327064