1

例はたくさんありますが、必要なものが見つかりませんか?私の質問は、「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ソリューションについては、Habibの投稿を参照してください。

4

1 に答える 1

2

LINQ の代わりに使用できます: DataTable.WriteXML();

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

スキーマに従ってデータを読み書きする場合は、次の手順を実行します。

  • DataTable にデータがあると思います。おそらくデータの xml もあります。Visual Studio でその XML を開き、[Generate Schema using] -> メニューで [Select] -> [XML] -> [Create Schema] を選択します。
  • これにより、スキーマ ファイルが生成されます。たとえば、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 スキーマを使用してデータセットから XML へのドキュメントを生成できます。最初にデータセットにデータテーブルを保存する必要があります。(このアプローチについてはよくわかりませんが、この質問に対する新しい回答が見られないため、役立つかもしれないと思いました)

于 2012-04-23T09:06:45.247 に答える