2012-04-24 53 views
0

..使用linq將數據錶轉換爲xml

我需要使用Linq將datatable轉換爲xml。我可以用硬編碼的列名來做到這一點,就像你可以在我的代碼中看到的一樣..但是我需要它而不用硬編碼它......希望有人能指出我該怎麼做..謝謝很多

示例數據表..

enter image description here

我的LINQ查詢..

Dim xmlDoc As New XDocument(       
      From row In dt.AsEnumerable() 
       From row In dt.AsEnumerable() 
        Select New XElement("PUPIL", 
        New XAttribute("FIRSTNAME", row.Field(Of String)("First Name")), 
        New XAttribute("LASTNAME", row.Field(Of String)("Last Name")), 
        New XAttribute("DOB", row.Field(Of String)("Date of Birth")), 
        New XAttribute("Gender", row.Field(Of String)("Gender")), 
        New XAttribute("City", row.Field(Of String)("City")) 
      )) 
+1

有你爲什麼不直接使用[DataTable.WriteXml(http://msdn.microsoft.com/en-us/library/x3zy2whb.aspx),而不是一個具體的原因是什麼? – Filburt 2012-04-24 09:01:50

+0

不..我只是喜歡linq,並想提高我的技能.. – lawphotog 2012-04-24 12:59:13

回答

3

爲什麼不直接加載從該行的列裝,你從表中的行以同樣的方式?

Dim xmlDoc As New XDocument(
    From row In dt.Rows 
     Select XElement("PUPIL", 
      From column In dt.Columns 
       Select 
        New XAttribute(column.Name, row.Item(column.Name)) 
     ) 
) 
+0

這是輝煌的先生dbaseman ...非常感謝...只是一件事,如何提高我的Linq技能?您推薦的任何書籍或網站? – lawphotog 2012-04-24 12:58:37

+0

@LaurenceNyein這個MSDN頁面有很多信息(但它是MSDN,所以有點幹):http://msdn.microsoft.com/en-us/library/bb384508(v=vs.90).aspx – McGarnagle 2012-04-24 17:19:56

+0

謝謝...................。 – lawphotog 2012-04-25 17:56:11