2012-04-23 80 views
1

即使有許多例子在那裏,我無法找到我所需要的?我的問題就像標題「如何將datatable轉換爲xml」一樣......如何將datatable轉換爲xml?

雖然,您可以在任何技術中建議解決方案,但我也有一個出發點,請查看此代碼。

Dim xmlDoc As New XDocument(
        New XElement("Class",         
           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)("DoB")), 
            New XAttribute("YEAR", row.Field(Of String)("Year")), 
            New XAttribute("SEX", row.Field(Of String)("Gender")), 
            New XAttribute("CLASSNAME", row.Field(Of String)("Reg")) 
           ))))) 

在這個例子中,我需要知道有多少列和要做轉換的列的名稱。我討厭將列名硬編碼到Linq中,是否可以在Linq中使用任意數量的列和列名?

如果有人可以只建議我提高是LINQ到從數據表中,將是巨大處理任何列。

非常感謝。

LINQ解決方案...

Dim xmlDoc As New XDocument(      
     From row In dt.Rows 
     Select New XElement("Pupil", 
     From column In dt.Columns 
     Select 
     New XAttribute(column.ToString, row.Item(column.ToString)))) 

對於Datatable.WriteXML解決方案,請參閱哈比卜的職務

+0

爲什麼你必須使用LINQ? – Clueless 2012-04-24 14:16:35

+0

我愛LINQ謝謝 – lawphotog 2012-04-24 14:29:02

回答

2

而是LINQ的,你可以使用:DataTable.WriteXML();

 DataTable dt = new DataTable(); 
     dt.WriteXml("myxmlfile.xml"); 

如果你想根據Schema讀寫數據,請執行f ollowing步:

  • 我相信你在數據表的數據,你可能也有數據的XML,打開Visual Studio中的XML,使用生成模式 - >在菜單中選擇 - > XML - >創建模式
  • 這將產生一個模式文件,保存該架構文件,例如test1.xsd
  • 試試下面的代碼

    DataSet ds = new DataSet(); 
    ds.ReadXmlSchema("test1.xsd"); //This will read and prepare dataset according to tes1.xsd schema 
    ds.ReadXml("test.xml"); // This will read the XML and it should be schema compliant 
    ds.WriteXml("test7.xml");//This will write the new XML according to schema 
    

    在你的情況,你可以修改架構,您的需要,然後你可以使用XML Schema來生成文檔從數據集到XML。您必須首先將數據表保存在數據集中。 (我不太確定這個方法,但是因爲我沒有看到這個問題的新回覆,所以我認爲這可能對你有所幫助)

+0

THANKs的幫助..但我不能那樣做HABIB .... XML需要被格式化的方式,以便它可以再次被我們的軟件之一讀取.. – lawphotog 2012-04-23 09:36:53

+0

@LaurenceNyein,你需要得到的數據集的XML架構,然後你就可以做到這一點,看看這個線程http://stackoverflow.com/questions/354568/how-to-specify-format-of-xml-output-當寫作 - 從-A-數據表 – Habib 2012-04-23 09:40:12

+0

我不熟悉使用XSD東西。我如何告訴WriteXML函數在寫xml時使用XSD?謝謝。 – lawphotog 2012-04-23 09:54:51